SSH密钥登录
1、创建公私钥
打开终端,并使用 ssh-keygen
命令生成新的密钥。指定 -C
标志以添加一条带有您的用户名的注释
ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]
其中:
-
[KEY_FILENAME]
是您要用于 SSH 密钥文件的名称。例如,文件名my-ssh-key
生成一个名为my-ssh-key
的私钥文件和一个名为my-ssh-key.pub
的公钥文件。 -
[USERNAME]
是连接到目标服务器的登录用户名。
如果您使用 ssh-keygen
工具在 Linux 上创建了密钥,则您的密钥保存在以下位置:
- 公钥文件:
~/.ssh/[KEY_FILENAME].pub
- 私钥文件:
~/.ssh/[KEY_FILENAME]
2、限制对您的私钥的访问,只有您能读取此密钥,且任何人都不能向其写入。
chmod 400 ~/.ssh/[KEY_FILENAME]
3、上传公钥到目标服务器
ssh-copy-id [USER]@[HOST]
其中:
[USER]
是目标服务器登录用户名[HOST]
是目标服务器 IP 地址
4、在本地终端中,使用 ssh
命令,并提供您的 SSH 私钥文件、用户名和要连接的目标服务器 IP 地址
ssh -i path-to-private-key username@external-ip
替换以下内容:
path-to-private-key
:您的 SSH 私钥文件的路径。username
:连接到目标服务器的登录用户名。external-ip
:是连接到目标服务器 IP 地址。
5、目标服务器一些配置
修改配置/etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
其中:
RSAAuthentication
:rsa非对称加密算法认证PubkeyAuthentication
:支持私钥登录PermitRootLogin
:如果使用 root 登录,请设置为 yes
6、使用 Bitvise SSH Client 登录
- 选择
Client key manager -> Import
导入生成的私钥文件 - 在
Login
标签页,Server
填写 Host、Port,Authentication
填写 Username、Initial method 选择publickey、Client key 选择刚才导入的私钥