When I create an ssh key with ssh-keygen, it includes the username and hostname of the machine it was created on. Is there any way to avoid this? I read the manpage and didn't see anything.
4 Answers
The user name is a comment, you can delete it or set it with the -C option
I do not see a host name anywhere in the keys, what file are you looking at ?
ssh-keygen -f test -C noname
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
a8:fa:78:ea:bb:c6:70:67:4c:79:ac:0d:a7:78:5a:40 noname
The key's randomart image is:
+--[ RSA 2048]----+
| |
| E |
| . o |
| . + +. |
| = B. S |
|. o O.. |
| + *. |
| +o. |
| oB*. |
+-----------------+
cat test
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6BD3B77199F57BCD0BBC4BD4D717931C
+hko6XxmbmqLlV32dFLTuS6vYSh5OGOBR9Q29OVewRwS6XN2+jbuCBviOdN/CnLh
k/Dzpjt9bPinFLI73RsfYMGUZ+kiBKIotYBqjJrkfMLNkZV0xvzk//tIEQatKyYI
W3OczGVt4EXfXozTvAQSpbEA5pYS5nLCbWSwx98Ilsqej+bnHJDflAhY5kFnrvOm
N66ODWa8FXpmJmJnIU4E8X+w33NO0nxXEiK8EUoRKFHnopwE+uQVkC6z3gPzqCd0
gCJrCDZ7zBaz947jlebH91liygrj1wTnuUbJOk0VnHyHMO1nO0piPOmjPZbL/C4Q
R8Z7C2Hm4cCaTRYbzZCcLvXCdlisCnGmM2a6dIGU5JECYuCB14k0npYqlY0dSJfb
XJx07z0wlkBWzOOUrWkc4U21+BBmYZe8DgHX/p6TNPxkugumIEUgu+xSL8RhwM6Y
lF4miW1s30g4/BpzN5GHTrpJGyyDBLojGR+P42LmsfiuCojU0NFbmrNlX23dSGj0
3wTSwuw179P6FDAEhJo8Znly8W+XP1pKeRn/ozdXW3WJWICDFZzVIe6VSlRES95Q
tcSeWDQRKhZWsGR+yriRwQSYROVje60d1TTMDIm6fcoxJuADGhrlq0pOpz9UuCLN
NbLFksM7NZc7eyYFEx7CBJkaOit1oT9DoH/Bd3mqSYORF5IHaXrTWXqtat1rCIqC
kRmioYdeAf/Daba4DrwXkmjwpPiEswsuaAID0H5AO0F7+vj227aHU0liyly6Qf0U
yGkt+tYE0yYyEY6gGXYZjZlzvw+MWWqebWPxHDZRtTOfZRVCzUW72AaT09SjAG9M
uwo55HW8ezb8F+GsgTNcmB9qo/iOSjwIoM8Vv+1fbncABKn77l0yPAMVPUGcKDE7
cFcS5RAN5XyYTPtGarCYfx27LR02CGRAzg14AtTXnPzIV/j3yRI9y6vJ9gY9zlpR
fnNGM+EMFwuPHawQhVoGuW1HVGPjDBXCYXAnFspQWVexM/0rfXey3Ld4npgBLezl
mb7I2wlaqNURSZ3G3Uh9i5g3q6QqfwLfV1WqtEpQTTy2LvbKowfJGzpokuEshElR
vEQ4uz+bjuurj5zROw12dV4ssPV03J+p06ma5ubsZKK2yq+dCxB8n1sc/EsoW3Ds
DUY68ZpXU7H0/XjDRI0UIV8FhXIpqZlWJTvmFwcYrpV5qW2I7dAScw05yxr9mN54
pODN1cSe9LKqSTtB8j7uOYFl5Ac3VWNtLd/KPRqb7utaeh0/xPAhBfHazYGaCRUD
ccOVD4/9wdFqEn9FK/vlII2Xp60Idbb4MSDWvMyGwmQ5f2zvxiJqtzLAy8CMt685
HxdIvBuxmiKyrA2g8g22ADMc7dz3nkvMdali+WZx4HqtOVJFl2D7/6x5uy4Wpo6p
8IbPyyr6sQZb/IMyVGQTVcJjEiai+sme373oB6CbVA/zCB1I6/DWNdNc1iUIG8IQ
jBS5IKnjHBPCrbhBXDk533FRDH8PY6h3RFaUtjc1lMQ/QhKZoFsWcBN5boPB5S/z
douETUJRJF7KUTrVwdeGyifBEuoGn8bQCtKSkXqzTvnpqDNvMmKVOn/5PGody24V
-----END RSA PRIVATE KEY-----
cat test.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2XiZLbaRwCZFPYUMNdzL7zCRvijpd4PaEbK4/zcXb6ns/9Eg2URJEVIDEBbKFrNnCQU48VNjiGG4yDyrn7COHLzWKgvLjraYV8gD0MnzqE52U5L85iuuhXcgVhc0i4Jqu3k4XoUNHGqtYMZstBhS39MCD2h8bkfKuz4eycWlyfKpktd8yIJjeUsV39mw7U7/qh/508RGuwriYe8AYNqgivnL0PmZaDwZGTCnEFaP0IPLbqKyFTcmSuVChmTYttE1Kcj4DNI57APaq2EzSGUNrBVGSJ7Q6KbXC4xiSF+RCDy8ruOk7hj2x2MGOwBZdvhy55kmMkhUMCC7BUcSiRA9F noname
No username or hostname in either file, test or test.pub
-
The comment was being set to my username@host. I didn't realize that that was the "comment". Thanks! Nov 16, 2014 at 6:16
-
OK, ~/.ssh/known_hosts does track hostname and ip (of the server) as it should, which is why I asked– PantherNov 16, 2014 at 7:06
-
6I would prefer to use
ssh-keygen -f amp_generic.pem -C ""
so that I do not have any name in the SSH public file– vikas027Apr 26, 2017 at 12:35 -
-
1@Cirelli94 Yes you can just manually delete the hostname at the bottom and it will work fine Mar 18, 2020 at 17:04
Apparently you can just delete the username@hostname
at the end. I just tested it by removing that bit from one of the public keys in one of my server's authroized_keys
files and it didn't seem to affect my ability to access that server with that key.
before:
ssh-rsa AAAAB... ...Kzwaw== myUser@somehost
after:
ssh-rsa AAAAB... ...Kzwaw==
Upon investigation, it appears that the user@hostname
is just a comment. In trying to delete and import the key, it shows as invalid. BUT, editing the id_rsa.pub
and replacing user@hostname
with noname
worked. This way you keep your existing pub key and no longer broadcast user/hostname to those that may inspect your key.
Additionally, if you wanted a "different comment" instead of "no comment" (what I searched for to find this post)...
The user@hostname
is the default comment. You can also use -C
to make that comment into anything you like.
For my purposes, I gave it the same name as the file, so I more easily recognize it in the API areas of sites I upload it to or so I know which key is referred to on remote servers with many keys in the file ~/.ssh/authorized_keys
.
I use...
ssh-keygen -t rsa -N "" -f ~/.ssh/My_key_nickname -C My_key_nickname
Then, ~/.ssh/My_key_nickname.pub
has = My_key_nickname
at the end of the key line.