在命令行ssh远程登录服务器和scp远程传输文件都需要交互式输入密码,无法像mysql登录数据库 mysql -uroot -p123456一样直接完成. 其实可以用脚本依赖expect来达到这一目的. 首先安装expect: [root@yqtrack-jumphost src]# yum -y install expect SSH登录脚本: #!/usr/bin/expect set timeout 30 spawn ssh root@192.168.1.93 expect "passwor…
ssh免输入密码登录   ubuntu下生成ssh密钥参见.   https://confluence.atlassian.com/display/BITBUCKET/Use+the+SSH+protocol+with+Bitbucket;jsessionid=7650862BE2719BA16E0B4CDD74C1BA83 场景:服务器A 采用ssh 登录服务器B,没有任何特殊设置情况下,采用ssh host.b 会出现提示Password:  让输入密码.如何可以不手工输入密码? 解决方案:…
想搞一个使用ssh登录批量ip地址执行命令,自动输入密码的脚本,但是ssh不能使用标准输入来实现自动输入密码,于是了解到了expect这个可以交互的命令 是什么 查看使用man查看expect,是这么说的,使用谷歌翻译一下 Expect is a program that "talks" to other interactive programs according to a script. Following the script, Expect knows what can be…
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:" send "123\r" expect "*#" interact 原文链接:http://www.xuanhao360.com/linux-expects/ Expect是一个用来处理交互的命令.借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成…
利用expect的,首先查看expect,命令:which expect #!/usr/bin/expect -f spawn ssh 用户名@ip地址 expect "assword:" send "password\r" interact 自动输入密码,切换目录 #!/usr/bin/expect -f spawn ssh 用户名@ip地址 -t "cd xxxxx;bash --login" expect "assword:&qu…
每次进去Linux系统,都有切换root用户,输入密码很麻烦,所以就写了一个小脚本,自动输入密码,登录到root用户, 1,首先检查一些是否安装了expect root@wuzs:/home/wuzs# whereis expect expect: /usr/bin/expect /usr/share/man/man1/expect.1.gz 如果没有需要安装一下 apt install expect 2,代码如下 root@wuzs:/home/wuzs# cat suroot.sh #!/u…
项目名 JSSH git地址: https://gitee.com/chejiangyi/jssh 项目介绍 linux scp(文件上传,下载) shell命令的java ssh jar和linux expect工具,主要是避免shell 密码手工输入带来的麻烦(免密ssh,scp),简单易用,方便上手 软件架构 jssh.jar 使用jsch封装的java版本 jssh.sh 使用expect封装的sh版本 以上两者是独立的,不同的实现. jssh.jar安装教程 wget https://…
场景 需要实现执行一个命令,并自动输入密码. 实现 通过expect命令实现 spawn               交互程序开始后面跟命令或者指定程序expect               获取匹配信息匹配成功则执行expect后面的程序动作(当出现expect后面的字符串时,就执行后续的命令)send exp_send 用于发送指定的字符串信息exp_continue    在expect中多次匹配就需要用到send_user         用来打印输出 相当于shell中的echoex…
每天一个Linux命令:ps命令 ssh原理和运用(一):远程登录 http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于很多场合.有些事情,没有它就是办不成的.本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用. 一…
1. 引言 最近做了一个项目,需要频繁与另一台主机进行文件的传输:中间想到了很多方式:FTP.samba.curl等,但是还是感觉scp最好用. SCP使用教程可参阅:http://www.jb51.net/article/70919.htm 但scp也存在着一些问题,每次都需要输入目标机的密码,需人为手动干预,这个就比较烦了,那么有没有可以自动进行界面交互的命令呢? 答案当然是:有: expect喽 except使用教程:https://www.cnblogs.com/lixigang/art…
1:简单的实现ssh登录 #!/usr/bin/expect set ip "10.0.0.142" set user "root" set password " spawn ssh $user@$ip expect { "yes/no"{ send "yes\n";exp_continue } "password:"{ send "$password\r"} } intera…
实现方式: 通过expect工具实现 #!/bin/bash yum -y install expect expect -c " spawn scp -r root@192.168.10.106:/root/qumf/Agoly.txt /root/qumf/ expect { \"*assword\" { ; send \"Hhly2017\r\"; } \"yes/no\" { send \"yes\r\"; e…
原文链接:https://fuckcloudnative.io/posts/iterm2-auto-login/ 对于 YAML 工程师来说,我们经常需要 ssh 登录不同的服务器,每次登录时都要经历两个步骤: 输入 ssh root@host-ip 输入密码 每次都重复这样的操作,不仅麻烦,还要记忆好多东西.对于 Windows 用户来说,可以使用 Xshell 来实现自动登录功能,macOS 用户就比较麻烦了.iTerm2 是 macOS 平台上最强大的终端工具,虽然默认没有提供自动登录的功…
expect实现ssh自动登录   #!/usr/local/bin/expect set PASSWD [lindex $argv 1] set IP [lindex $argv 0] set CMD [lindex $argv 2] spawn ssh $IP $CMD expect "(yes/no)?" { send "yes\r" expect "password:" send "$PASSWD\r" } "…
ssh自动登录的几种实现方法,记录在此.  1. 自动ssh/scp方法 A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110; A和B的系统都是Linux 在A上运行命令: # ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码) # ssh root@192.168.60.110 "mkdir .ssh" (需要输入密码) # scp ~/.ssh/id_rsa.pu…
title: SSH自动登录config文件配置 comments: false date: 2019-08-19 19:29:13 description: 更方便的 ssh 操作??? categories: Linux 概述 之前说过可以使用 spawn 命令来自动登录服务器,但是仅仅是登录那么很方便,如果使用 scp 拷贝文件呢?是不是得使用最原始的 scp user@host:/xxx . 还是不方便???那就操作起来 配置服务端 与客户端免密登录服务器一样,在服务器的 ~/.ssh/…
CentOS配置SSH无密码登录需要3步: 生成公钥和私钥 导入公钥到认证文件,更改权限 测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默认在 ~/.ssh目录生成两个文件:    id_rsa      :私钥    id_rsa.pub  :公钥 2.导入公钥到认证文件    2.1 导入本机 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 2.2 导入要免密码登录的服务器 首先将…
一般使用scp/ssh/rsync传输文件时,都需要输入密码.下面是免密码传输文件的方法. 假设要在两台主机之间传送文件,host_src & host_dst.host_src是文件源地址所在的机器,host_dst是目的地址所在的机器. 1. 在host_src机器上,用执行scp/ssh/rsync命令的用户登录,执行下面的命令: $ ssh-keygen -t rsa 按回车健继续,默认的public key会被存放在 ~/.ssh/id_rsa.pub: Your public key…
#!/usr/bin/expect set timeout 10 spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2] expect { "(yes/no)?" {send "yes\n";exp_continue} "password:" {send “<password>\n"} } expect “*<服务器名>*" {se…
工作中经常会有这样的需求场景,因为要在其它电脑上做操作, 需要从PC A ssh 到 PC B,PC A 可能是自己的工作机,PC B 可能是服务器.一般会使用 SSH 登录到 server 上再进行具体的操作.但如果要经常进行登录,就需要不停的输入完整的 ssh 登录命令:    ssh  rereadyou@10.200.33.33 -p 8000然后再输入登录密码,过程比较简单,但是也会比较烦.如果要经常重复的 ssh 登录一台电脑, 可使用以下的方法:1. 首先登录目标机器   ssh…
Shell结合Expect自动输入密码示例 #!/bin/bash cd /data/live /usr/bin/expect <<-EOF spawn git clone "ssh://xxxxxxxxxxxx" expect "*passphrase*" send "passwordhere\n" expect eof EOF time=`/bin/date "+%Y%m%d%H%M%S"` cd dir1 &…
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:" send "123\r" expect "*#" interact 原文链接:http://www.xuanhao360.com/linux-expects/ Expect是一个用来处理交互的命令.借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成…
通过expect免自动输入密码登陆远程服务器 1.前提必须已经安装expect 2.新建login.sh,文件内容如下 #!/usr/bin/expect -f spawn ssh root@140.10.10.52expect "password:"send "passwordR\r"interact 3.执行./login.sh即可登陆远端服务器…
配置SSH无密码登录需要3步: 1.生成公钥和私钥 2.导入公钥到认证文件,更改权限 3.测试 1.生成公钥和私钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 默认在 ~/.ssh目录生成两个文件:    id_rsa      :私钥    id_rsa.pub  :公钥 2.导入公钥到认证文件 2.1 导入本机 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 2.2 导入要免密码登录的服务器 首先将认证文…
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:" send "123\r" expect "*#" interact Expect是一个用来处理交互的命令.借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成.形象的说,ssh登录,ftp登录等都符合交互的定义.下文我们首先提出一个问题,然后介绍基础…
版权声明:本文为博主原创文章,未经允许不得转载. 在平常的工作中经常在两个服务器之间传输文件,而且经常从本地远程登录服务器,每次都要输入密码显然很没效率,这时候该怎么办呢? 首先假设服务器A和B,要想实现从A向B复制文件或者从B获取文件,也就是: scp -r "some files in A" B:/somewhere 或者 scp -r B:/somewhere/somefiles "somewhere in A" 按照下列步骤设置: 1. 在A中执行命令: s…
一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-expect讲解 yum install -y expect 自动远程登录 #! /usr/bin/expect set host "192.168.1.106" set passwd "mimA123" spawn ssh root@$host  指向106 expec…
升级MAC系统后,发现用于MAC终端ssh服务器的登录脚本无法正常执行了,表现为:需要手动输入密钥密码,于是重新整理一下,恢复正常,在此记录一下: #!/usr/bin/expect -fspawn ssh-add -Dexpect "*removed."spawn ssh-add -lexpect "*identities."spawn ssh-add /Users/alsoalso/keys/RSA_Key01expect "*RSA_Key01&qu…
一.SSH免密码登录 假设要登录的机器为192.168.1.100,当前登录的机器为192.168.1.101. 首先在101的机器上生成密钥(如果已经生成可以跳过): $ ssh-keygen -t rsa一路回车即可. 然后在将生成的公钥复制到机器100上的~/.ssh/authorized_keys中,使用如下命令: $ ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100root为需要登录到机器100上的身份,需要替换成需要的用户名. 最…
我们采用RSA非对称加密算法,原理: 如果,A要和B通讯,则: (1). A通过RSA算法生成公钥(.pub)和私钥(公钥用于加密,私钥用于解密) (2). B将A的公钥文件(.pub)内容加入到authorized_keys中 (3). 此时A便可以向B进行通讯,而B不能向A进行通讯 现有两台服务器: A: 123.118.171.x(root@study) B: 47.94.199.x (root@centos7) 现在要实现从A向B进行ssh免密登录: ssh root@47.94.199…