ssh自动登录

ssh自动登录


登录服务器的时候,经常使用ssh进行远程的登录,经常输入密码,比较麻烦,可以使用sshpass配合iTerm2简化操作。

安装sshpass

首先下载sshpass,不同系统可能不一样,大致差不多,可以直接使用包管理工具安装。我用的是mac os, 可直接使用brew

1
2
3
brew install sshpass
Error: No available formula for sshpass
We won't add sshpass because it makes it too easy for novice SSH users to ruin SSH's security.

说明不安全,可不管,直接下载安装。

1
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

sshpass使用姿势

直接远程连接某主机

1
sshpass -p {密码} ssh {用户名}@{主机IP}

远程连接指定ssh的端口

1
sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}

从密码文件读取文件内容作为密码去远程连接主机

1
sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}

从远程主机上拉取文件到本地

1
sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}

将主机目录文件拷贝至远程主机目录

1
sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}

远程连接主机并执行命令

1
2
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'
-o StrictHostKeyChecking=no :忽略密码提示

iTerm2结合使用

参考上面,使用sshpass -p {密码} ssh {用户名}@{主机IP}即可满足我们的需求,每次只要运行同样的命令即可。如:

1
sshpass -p root ssh  admin@192.168.1.100

使用iTerm2中的Profile,添加一条新的配置,如下所示。

命令如下,sshpass和ssh需要指定具体路径。

1
/usr/local/bin/sshpass -p root /usr/bin/ssh  admin@192.168.1.100
坚持原创技术分享,您的支持将鼓励我继续创作!