简介
每次在本地计算机上通过 SSH 远程连接 Linux 服务器的时候都需要输入密码,非常繁琐,今天教大家如何配置免密登录。
教程
- 在本地通过 RSA 加密算法生成公私钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_test
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_blog
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\87897/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\87897/.ssh/id_rsa.
Your public key has been saved in C:\Users\87897/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uV8DJX7MT9dAGBUdVDtIkidM4ULSCXOyfMK8Z+S4RXY 87897@ZXC-LAPTOP
The key's randomart image is:
+---[RSA 4096]----+
| =oo+++===+|
| + Bo.++o. o|
| * *.E+..o |
| Xoo= .o|
| oS=o + . o|
| =. o o . |
| .. o . |
| . . . |
| . |
+----[SHA256]-----+
- 从本地拷贝公钥(后缀为
.pub 的文件 )到 Linux 服务器(SCP 远程文件传输教程:点击跳转)
scp -P 22 ~/.ssh/id_rsa_test.pub user@host:~/.ssh/
- 在远程 Linux 服务器中追加公钥到文件
authorized_keys 中
cat id_rsa_test.pub >> authorized_keys
- 在本地 ssh 配置文件
~/.ssh/config 中添加如下配置信息
Host host
HostName host
User user
IdentityFile ~/.ssh/id_rsa_test
Host :远程服务器的 IP 地址HostName :远程服务器的 IP 地址User :远程服务器的用户名称IdentityFile :本地私钥保存路径
注意
远程 Linux 服务器必须开启公钥密码验证和 RSA 加密验证,允许免密登录,并确保加密验证文件正确。
- 首先,查看 SSH 配置文件
sudo cat /etc/ssh/sshd_config
- 可以看到公钥密码验证和 RSA 加密验证都是
yes ,加密验证文件是 .ssh/authorized_keys
PubkeyAuthentication yes
RSAAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- 如若不然,请联系管理员修改配置文件
sudo vi /etc/ssh/sshd_config
参考
Visual Studio Code 远程开发疑难解答提示和技巧
插画
【画师】防人 【P站ID】79919440
|