- 浏览: 135235 次
- 性别:
- 来自: 成都
文章分类
最新评论
【基本介绍】
ssh远程连接到服务器认证密码的时候分为交互模式和非交互模式。交互模式就是我们登入要手动输入密码,非交互模式就是不需要人工输入密码。
这里我们介绍非交互模式
【非交互模式】
1.公钥和私钥的方式
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
1.1 ssh-keygen -t rsa 生成密钥文件
1.2 将id_rsa.pub加到授权的authorized_keys里面去
1.3 拷贝id_rsa.pub密匙文件到目的服务器(ssh-copy-id)
1.4 注意文件的权限问题
2.sshpass
sshpass is a utility designed for running ssh using the mode referred to as "keyboard-interactive" password authentication, but in non-interactive mode.
3.expect交互
【参考】
http://www.2cto.com/os/201301/186673.html
https://linuxtoy.org/archives/sshpass.html
ssh远程连接到服务器认证密码的时候分为交互模式和非交互模式。交互模式就是我们登入要手动输入密码,非交互模式就是不需要人工输入密码。
这里我们介绍非交互模式
【非交互模式】
1.公钥和私钥的方式
Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Salve上。当Master通过SSH链接到Salve上时,Salve会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Salve,Salve确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,期间不需要手工输入密码,重要的过程是将Master上产生的公钥复制到Salve上。
1.1 ssh-keygen -t rsa 生成密钥文件
1.2 将id_rsa.pub加到授权的authorized_keys里面去
1.3 拷贝id_rsa.pub密匙文件到目的服务器(ssh-copy-id)
1.4 注意文件的权限问题
2.sshpass
sshpass is a utility designed for running ssh using the mode referred to as "keyboard-interactive" password authentication, but in non-interactive mode.
[root@sparkVM script]# sshpass --help sshpass: invalid option -- '-' Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters -f filename Take password to use from file -d number Use number as file descriptor for getting password -p password Provide password as argument (security unwise) -e Password is passed as env-var "SSHPASS" With no parameters - password will be taken from stdin -h Show help (this screen) -V Print version information At most one of -f, -d, -p or -e should be used
[root@sparkVM script]# sshpass root ssh -l root ipaddress "cat /etc/issue"
3.expect交互
[root@sparkVM script]# cat expect.exp #!/usr/bin/expect -f set ip [lindex $argv 0 ] set password [lindex $argv 1 ] set timeout 5 spawn ssh root@$ip expect { "*yes/no" { send "yes\r"; exp_continue} "*password:" { send "$password\r" } } interact [root@sparkVM script]# ./expect.exp ipaddress root spawn ssh root@192.168.197.129
【参考】
http://www.2cto.com/os/201301/186673.html
https://linuxtoy.org/archives/sshpass.html
发表评论
-
linux shell - 远端修改非root密码
2015-01-09 20:40 958【基本介绍】 通过远端修改普通用户密码,而passwd --s ... -
linux shell - broken pip error
2015-01-07 15:36 2670【基本介绍】 这里我们介绍发生broken pipe错误的原因 ... -
linux locate - find files by name
2014-12-17 17:46 564【基本介绍】 这里我们介绍locate命令,用来查找文件。 ... -
linux ssh - GSSAPIAuthentication
2014-12-10 14:58 2008【基本介绍】 最近公司搬家,发现合作伙伴的服务器的用ftp工具 ... -
linux tar - 压缩解压
2014-12-01 16:04 975【基本介绍】 今天遇到要添加文件到tar文件里面,所以在这里介 ... -
linux parameter substitution - 字符串/变量处理
2014-11-17 15:56 780【基本介绍】 这里我们介绍bash里面对字符串,变量等的替换等 ... -
linux netstat - status状态描述
2014-11-14 17:59 1117【基本介绍】 这里介绍netstat命令返回的结果status ... -
linux set - set variables and set positional parameters
2014-11-10 18:26 408【基本介绍】 set是shell的内置命令。可以用来设置修改变 ... -
linux nc - arbitrary TCP and UDP connections and listens
2014-10-31 17:46 761【基本介绍】 nc是可以打开任意端口的TCP/UDP连接和监听 ... -
linux 报错集 - Cannot retrieve metalink for repository: epel. Please verify its pat
2014-10-29 15:12 926【基本介绍】 运行yum报错Error: Cannot ret ... -
linux awk - awk tutorial
2014-10-21 10:47 461【基本介绍】 awk是一款强大的对文件内容进行处理的软件,可以 ... -
linux ps - processes
2014-10-20 14:17 1224【基本介绍】 ps - report a snapshot o ... -
linux lsof - list open files
2014-10-17 17:31 715【基本介绍】 lsof - list open files I ... -
linux - 网络连接状态
2014-10-13 11:00 1353【基本情况】 这里介绍 ... -
linux netstat - Print network connections, routing tables, interface statistics,
2014-10-13 10:37 981【基本介绍】 netstat - Print network ... -
linux vmstat - Report virtual memory statistics
2014-10-10 17:39 696【基本介绍】 vmstat - Report virtual ... -
linux yum - yum warning: rpmts_HdrFromFdno
2014-10-09 15:08 565【基本介绍】 在yum安装软件的时候有时候会报warning: ... -
Linux ip subnet mask - 网段分析
2014-09-24 19:22 1295【基本介绍】 网段的分析可以帮助我们查看两个局域地址是否可以互 ... -
linux curl - curl 上传下载
2014-09-19 11:45 2082【基本介绍】 curl is a tool to tra ... -
linux mkpasswd - 密码生成器
2014-09-18 17:18 1382【基本介绍】 作为linux admin要经常创建用户,并初始 ...
相关推荐
Linux方便的ssh非交互工具sshpass,使用sshpass实现自动ssh和自动scp。sshpass-1.06-1.el7.x86_64.rpm
问题:ssh-copy-id 命令无法使用,在linux服务器的ssh服务中没有有这个命令,可以在/usr/bin/的这文件夹中查看没有这个ssh-copy-id 命令。 问题分析:是由于ssh服务的问题,可以直接将ssh-copy-id 命令拷贝/usr/...
ssh登陆不能在命令行中指定密码,sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器,它支持密码从命令行、文件、环境变量中读取。
使用 ganymed-ssh2-262.jar 通过ssh协议链接资源执行脚本命令 使用 ganymed-ssh2-262.jar 通过ssh协议链接资源执行脚本命令
orion-ssh2-214.jar 使用ssh功能的
Linux 基础 58-SSH高级-03-免密码登录工作原理.flv
Linux 基础 57-SSH高级-02-免密码登录设置步骤.flv
sshpass-1.05.tar.gz
arm环境下的sshpass工具
sshpass from network project for suse; SLE 11sp4~12 SP3 的软件包
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。 语法格式:ssh-copy-id ...
sshpass: 用于非交互的 ssh 密码验证 sshpass: 用于非交互的 ssh 密码验证 sshpass: 用于非交互的 ssh 密码验证
其中包含sshpass-1.06,sshpass-1.08,sshpass-1.09以及sshpass1.10版本
Linux 基础 56-SSH高级-01-确定目标/认识.ssh目录.flv
ganymed-ssh2-build210.jiar包与源码 Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
Linux 基础 59-SSH高级-04-配置远程计算机的别名.flv
解决openssh升级到8.2以后无法登录的问题,支持jdk1.5及以上版本
ganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7z
Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!
ssh-copy-id for windows,支持windows下的ssh-copy-id命令,加入exe所在路径到PATH环境变量即可