shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做?请各位帮忙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做?请各位帮忙相关的知识,希望对你有一定的参考价值。

root密码如何在命令行中传递呀?比如shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做?

参考技术A #!/usr/bin/expect
set pw pawword
spawn ssh 192.168.1.200
expect 'password: '
send "$pw\r"
expect '#'
send "exit\r"
expect eof

chmod +x ssh.sh
./ssh.sh 试试呢 哈哈本回答被提问者和网友采纳
参考技术B 简介:利用public keys 和 private keys,并将public keys传到要访问的远端计算机,使其信任
操作:
1。在本机执行 ssh-keygen -t dsa 然后一路回车,就会生成在该账户的home 即 /home/username/.ssh/id_dsa 和 /home/username/.ssh/id_dsa.pub 这;两个文件
2。在远端需要访问的机器上复制一份 本机生成的 id_dsa.pub 文件,路径是 /home/username。
3。并在远端机上将 id_dsa.pub文件加入到 authorized_keys文件,即 cd /home/username
; cat id_dsa.pub >> .ssh/authorized_keys
4。测试,在本机执行 ssh 远端机,可以看到不需要密码就可以登陆了
参考技术C 用expect 具体代码 baidu
luck

本地shell脚本中ssh到远程服务器并执行命令

参考技术A         在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式

1、首先配置ssh免密操作

Linux 下实现SSH互信: https://www.jianshu.com/p/2456d98aa607

2、简单命令

ssh root@192.168.1.1 "cd /var/lib; ls; cd "

2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行

2.2 分号是将两条语句间隔开

2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去

3、多条命令

     ssh root@192.168.1.1<< reallssh

      cd /var/lib/test

      tar -zxvf api.com.tar.gz

      ......

      exit

      reallssh

3.1 命令写在 << reallssh(开始) 至 reallssh(结束) 之间

3.2 reallssh可自己定义为其他形式

3.3 在结束前加上exit退出远程

4、可能遇到的问题

问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误

解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。

所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。

to force pseudo-tty allocation even if stdin isn’t a terminal.

参考样例如下:

ssh -t -t user1@192.168.1.1 -p 22

--------------------------------------------------------------------------------

参考:https://blog.csdn.net/jinking01/article/details/84386769

以上是关于shell脚本中ssh到远程机子时,提示输入密码?用变量给出密码 要怎么做?请各位帮忙的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何使用ssh远程登录主机 执行shell脚本?

shell脚本中怎么ssh上远程机执行命令

Linux 通过 shell 脚本修改密码

编写一个shell脚本ssh到远程机器并执行命令

怎么在一个shell脚本中执行远程主机的另一个shell脚本?? ssh已经可以无密码登录了。

Linux。。shell 脚本中经常要用到ssh。可是ssh又要交互式输密码。怎么能不交互的输密码呢?