使用 ssh-keygen 生成密钥
参考资料
https://learn.microsoft.com/zh-cn/azure/virtual-machines/linux/create-ssh-keys-detailed
快速开始
以下 ssh-keygen
命令默认在 ~/.ssh
目录中生成 4096 位 SSH RSA 公钥和私钥文件。 如果当前位置存在 SSH 密钥对,这些文件将被覆盖。
# 生成私钥和公钥
ssh-keygen -m PEM -t rsa -b 4096
# 详细生成私钥和公钥
ssh-keygen -m PEM -t rsa -b 4096 -C "azureuser@myserver" -f ~/.ssh/mykeys/myprivatekey -N mypassphrase
# 用私钥生成公钥
ssh-keygen -y -f /path/to/id_rsa > /path/to/new_id_rsa.pub
命令解释
ssh-keygen
= 用于创建密钥的程序
-m PEM
= 将密钥的格式设为 PEM
-t rsa
= 要创建的密钥类型,本例中为 RSA 格式
-b 4096
= 密钥的位数,本例中为 4096
-C "azureuser@myserver"
= 追加到公钥文件末尾以便于识别的注释。 通常以电子邮件地址用作注释,但也可以使用任何最适合你基础结构的事物。
-f ~/.ssh/mykeys/myprivatekey
= 私钥文件的文件名(如果选择不使用默认名称)。 追加了 .pub
的相应公钥文件在相同目录中生成。 该目录必须存在。
-N mypassphrase
= 用于访问私钥文件的其他密码。
-y
私钥生成公钥
-f
指定私钥路径
用法
服务器配置
私钥用于连接,公钥内容写入放在被连接主机的~/.ssh/authorized_keys
文件中,同时确保~/.ssh
目录权限是700
,~/.ssh/authorized_keys
文件权限是600
。
配置/etc/ssh/sshd_config
以下内容已启用
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
客户端连接
ssh -i /path/to/private_key_file username@hostname
-i
指定私钥文件路径
/path/to/private_key_file
:您要使用的私钥文件的路径。
username
:远程服务器上的用户名。
hostname
:远程服务器的主机名或IP地址。