虚拟机debian9上实现ssh到虚拟机centos7,关键步骤是需要把debain9的公钥/root/.ssh/ id_rsa.pub复制到centos上的/root/.ssh/authorized_keys里,之后可以在debian9上使用ssh root@192.168.65.128 -p 22
免密切换到centos7。
具体步骤:
1.在跳板机debian9下/root/.ssh配置config文件:
vi config
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r ##这个字段是否限定了只能root登录,无法使用zrj登录?###不是,操作错误,一般用户登录需要指定对应私钥去登录,同时需要目的机器设置好.sss目录下的权限。
ControlPersist 1h
StrictHostKeyChecking no
SendEnv LANG LC_*
GSSAPIAuthentication no
GSSAPIDelegateCredentials no
Host S1
#主机名
HostName 192.168.65.128
#内网IP
User root
Port 22
Host S2
#主机名
HostName 192.168.65.130 #### 192.168.65.128为centos7的eth0,虚拟多一个网卡eth0:0为 192.168.65.130
#内网IP
User zrj
Port 22
2.目的机器authorized_keys写入debian9的公钥
生成秘钥:ssh-keygen -t rsa,默认会生成id_rsa,id_rsa.pub,authorized_keys等几个文件。
vi /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOcOR9RIYt6UEquX4yaGWxzmach7aFZbg+DcrkVAPlf4+bn7Rs/Q/DDQEjB9vHizm5ACrU7/X3yiRrhZzQa6OGq6Fwl7Xj/co9P5pzcWbyeOPFeymGCJ07sim4Ow+CPUEFYPxNocJp9zJnD6cgK6inCnm31iRYmN8SMBQeRuAGMpVmeTFVTWsuQuYrhDpOznOrwQMt0t3hoU3Dh/mq/OY+7PjvyN5Ku6pamZgtKjgWm6HWWMa7Baq2LDzxrTS4rV6hltiVZqroumM5mj4OyYhAuIaUVDYOss3bWeKsqHN6uv7OM66yxIrDnPhwy0uvUOTFuSOpmwEE**************************1518130****@qq.com
3.centos7重启sshd服务
4.大问题:如果是需要使用一般的用户进行登录,比如通过zrj在debian9登录到centos7,则需要把在debian9下zrj生成公钥key,之后把/home/zrj/.ssh/ id_rsa.pub复制到目的机器centos7的authorized_keys里。
实际操作后,ssh zrj@192.168.65.132 -p 22还是会提示输入zrj的密码,哪里出了问题?
有解:
原因:/etc/ssh/sshd_config里面默认使用的秘钥文件是root用户的,对应的其他用户,需要额外的指定秘钥文件。
/home/zrj/.ssh/ id_rsa.pub复制到目的机器centos7的authorized_keys,复制到目的机器对应用户的~/.ssh/authorized_keys里面。比如zrj用户,需要把公钥复制到/home/zrj/.ssh/authorized_keys,之后修改目录及文件权限:
[root@localhost .ssh]# chmod 700 /home/zrj/.ssh/
[root@localhost .ssh]# chmod 600 /home/zrj/.ssh/authorized_keys
重启sshd服务,在debain指定私钥文件实现免密登录:
由于修改了authorized_keys,将root的key注释导致,取消注释后root能免密登录。重启过后连root也失去免密登录,什么原因?
另:centos配置eth0:0,使用192.168.65.130这个ip,ping通telnet不通,无法ssh登录。
原因:/etc/ssh/sshd_config之前修改了ListenAddress 字段,只监听了192.168.65.128,注释掉后正常。
/etc/ssh/sshd_config里面也指定了秘钥认证方式的文件路径.ssh/authorized_keys。