参考文章
https://blog.csdn.net/qq_41554005/article/details/103103443
免密连接服务器的步骤一般如下:
1、cd ~/.ssh/
进入ssh所在目录
2、ssh-keygen -t rsa
生成公私钥,一路回车
3、将公钥拷贝到服务器上,并将其追加到服务器上./.ssh/authorized_keys
中
4、更改服务器上的.ssh
权限
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
5、在本地.ssh/config
文件中加入
Host haoJiDeMingZi # sui bian qu
HostName 111.111.1.1 #(IP)
User usrname # username
IdentityFile /Users/ohanlon/.ssh/id_rsa # si yao di zhi
6、在终端输入
ssh somebody@ip
# eg:
ssh usrname@111.111.1.1
即可免密连接!
按照上面的操作没有成功的原因可能是:在文件 /etc/ssh/sshd_config
中,允许密钥认证被关闭了,可以
sudo vi /etc/ssh/sshd_config
确保此文件中
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no # 这行是禁用密码的,可以不设置
修改之后需要重启 SSH 服务以使更改生效
sudo service ssh restart
如果你是 root
但是改变不了 sshd_config
,可以按下面的操作:
lsattr sshd_config # 查看文件的属性
可能文件属性中有i
与a
,或者有其中的一个,使用
chattr -ia sshd_config
去掉这一属性即可。当然使用 chattr +ia filename
也可以恢复其ia
属性。
ps: chmod
实际上是用更底层的chattr
实现的
一些不确定的问题:
- 一对公私钥好像可以用在多个服务器中,就是同样的公钥可以放在多个服务器的
authorized_keys
中 - 公私钥的名字好像不能随便取?