ssh自动登录


ssh自动登录


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

安装sshpass

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

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.

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

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

sshpass使用姿势

直接远程连接某主机

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

远程连接指定ssh的端口

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

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

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

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

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

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

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

远程连接主机并执行命令

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

iTerm2结合使用

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

sshpass -p root ssh  admin@192.168.1.100

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

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

/usr/local/bin/sshpass -p root /usr/bin/ssh  admin@192.168.1.100

文章作者: 流水不腐小夏
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 流水不腐小夏 !
 上一篇
Jenkins can't parse argument number changelog.url 问题 Jenkins can't parse argument number changelog.url 问题
最近使用了Jenkins,碰到一问题,提示如下。 org.apache.commons.jelly.JellyTagException: jar:file:/Users/xiaqiulei/.jenkins/war/WEB-INF/lib/
2018-11-26
下一篇 
GsonSerializedNameGen GsonSerializedNameGen
Gson SerializedName Gen GsonSerializedNameGen 是一个自动生成Gson SerializedName注解的插件。 下载地址 插件地址 介绍有时候经常会维护一些老的项目,可能由于历史或开发人员能力问
2018-10-25
  目录