公司的linux服务器和交换机都是用户名和密码ssh连接的,每次连接时都要手动输入密码感觉很是麻烦

如果连接时不用输入密码就方便很多了,于是网上查了下说是有三种解决方法

1. 生成ssh公钥,建立和对方机器的信任关系;

2. 使用expect脚本;

3. 使用sshpass。

个人比较喜欢使用sshpass,配上 shell脚本后效率提高很多

sshpass 安装 (centos)

yum install sshpass


基本用法:sshpass -p [密码] ssh [user]@[host] 

第一次登录机器时的确认提示(Are you sure you want to continue connecting (yes/no))


如果取消提示可使用如下命令

sshpass -p [密码] ssh [user]@[host] -o StrictHostKeyChecking=no


自动登录脚本

vi autologin.sh

#!/bin/bash

p=123456 

#password,当密码改动时只需要修改这个值就即可

read -p "请输入要连接的服务器ip地址未位,192.168.10." a 

#由于只使用一个网段192.168.10.X,这里只需要输入ip地址的末位即可

ip=192.168.10.$a

echo 连接的交换机 $ip

sshpass -p $p ssh root@$ip -o StrictHostKeyChecking=no