Michael_Tong
近期目标:按时吃药,努力做个正常人。

ssh免密登陆

ssh免密登陆配置很简单
A工作站和B服务器都是linux
A工作站想要不需要密码登录B服务器IP=10.1.1.1

在A工作站上输入

cd
cd ~/.ssh
[如果出错就输入ssh localhost一步一步下去,然后在执行cd ~/.ssh]
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ss61eUVR664TTNpaWPbEic5x7hSEMKOBXwD+eSKsVISkImVydcMZcDNYmec8CKcIPhFgznrjp+PMP1x43WQr9VfoMKj+g58VCybxWwNkCtyd8gr/drwoFUb7bQKdGXL2iweOBBh7tUWJBaOUhgVKhHqzY1LAcInGQrhP7F+43cb1Q0nSlJeyAVdiUWy5zC/tSvOdJeW+5U+AdvU+C7OpGtEEjXdBZ1NUn4m37p7owOZkz2aq7OtJcrwDt1OWS7Q6990KUVcreEShPnEsum2UNkZ3n2+YD/jozxk/6K/3JNxZqbuUQ6bQTsYpHUyjBYXdccdw3mCo7BkAhqdVHrin root@bogon

B服务器上输入

cd
cd ~/.ssh
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6ss61eUVR664TTNpaWPbEic5x7hSEMKOBXwD+eSKsVISkImVydcMZcDNYmec8CKcIPhFgznrjp+PMP1x43WQr9VfoMKj+g58VCybxWwNkCtyd8gr/drwoFUb7bQKdGXL2iweOBBh7tUWJBaOUhgVKhHqzY1LAcInGQrhP7F+43cb1Q0nSlJeyAVdiUWy5zC/tSvOdJeW+5U+AdvU+C7OpGtEEjXdBZ1NUn4m37p7owOZkz2aq7OtJcrwDt1OWS7Q6990KUVcreEShPnEsum2UNkZ3n2+YD/jozxk/6K/3JNxZqbuUQ6bQTsYpHUyjBYXdccdw3mCo7BkAhqdVHrin root@bogon >~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

登陆

这时候A工作站上ssh 10.1.1.1就可以直接登录B服务器了

ssh初次登陆询问

第一次ssh登录的时候总是弹出提示Are you sure you want to continue connecting (yes/no)?

1.单次取消

在A工作站登录时直接使用命令

ssh -o StrictHostKeyChecking=no root@192.168.0.108`

2.ansible中增加链接参数

/etc/ansible/ansible.cfg中配置如下

ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

3.修改ansible配置参数[推荐]

vi /etc/ansible/ansible.cfg
host_key_checking = False

4.修改服务器上的ssh_config[失败]

在需要登录的服务器上vi /etc/ssh/ssh_config

# StrictHostKeyChecking ask
修改为
StrictHostKeyChecking no
然后systemctl restart sshd

5.使用plink[失败]

echo y | plink -ssh root@REMOTE_IP_HERE "exit"

6.使用sshpass

sshpass -p [passwd] ssh -p [port] root@192.168.X.X
重要:使用 sshpass 是最不安全的,因为所有系统上的用户在命令行中通过简单的 “ps”或者history 命令就可看到密码。测试环境用用就得了~建议别上生产了。

这个ansible去掉初次登陆询问一直想搞定,就是没时间看,这次搞定了还顺带看了其他方式。~~~ 哈哈哈 ~~~

posted on 2019-01-28 01:27  Michael_Tong唐唐  阅读(995)  评论(0编辑  收藏  举报