首页  :: 新随笔  :: 管理

ssh 制作免密登录(免密登录多台服务器)

Posted on 2018-08-29 13:46  季枫  阅读(1926)  评论(0编辑  收藏  举报

场景:服务器B (192.168.1.101)免密登录A(192.168.1.100)服务器

1、登录服务器B

  ①生产公钥

ssh-keygen -t rsa
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again: 

注意:1、在第二步的时候千万不要改名,采坑的教训;2、普通用户(非root),先切换到用以登录的用户

  ②上传公钥到服务器A

cd .ssh
scp id_rsa.pub  root@192.168.100.100:/root

 

2、登录服务器A(被免费登录服务器)

cd /root/.ssh
cat ../id_rsa.pub >> authorized_keys

 若为普通账号(非root),则目录为 /home/用户名/.ssh/authorized_keys,不存在目录或文件就先创建

3、免密登录多台服务器

  在执行ssh-keygen -t rsa的时候如果不输入文件名,会替换掉id_rsa文件,即上一次通过该文件设置的密码登录将失效,要支持免密登录多台服务器需要生成秘钥的的时候指定新的文件名

  然后在B服务器.ssh目录编辑文件:config,该文件没有扩展名,通过该文件来指定秘钥,如下

  

Host 172.16.4.220
    HostName 172.16.4.220
    IdentityFile ~/.ssh/id_rsa_robot
    User robot

  host和hotsname都指定主机域名或ip地址

  IdentityFile  指定密钥文件

  User 指定登录的账号

 

4、如果ssh免密登录失败可以增加 -vvv参数查看登录日志

     ssh 客户端日志:ssh  user@ip -vvv

     新启动一个带debug的ssh服务端:通过执行 /usr/sbin/sshd -d -p 2222 (在2222端口启动一个带debug输出的sshd,注意防火墙问题)

5、其它问题

Bad owner or permissions on .ssh/config的解决
当为本机配一个固定用户名远程登录某主机时,配置了一个config文件,但是在执行ssh免密码登录时报如下的错误:Bad owner or permissions on .ssh/config的解决。

经过查找资料发下解决办法如下:

sudo chmod 600 config

Authentication refused: bad ownership or modes错误解决方法

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

解决方法
检测目录权限,把不符合要求的按要求设置权限即可。

智读 | 成都会领科技有限公司官网 | 智读App下载 | 每天听本书的博客 | |