目录
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去掉初次登陆询问一直想搞定,就是没时间看,这次搞定了还顺带看了其他方式。~~~ 哈哈哈 ~~~