首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用远程登录/命令的SSH

使用远程登录/命令的SSH
EN

Stack Overflow用户
提问于 2011-08-09 01:47:18
回答 2查看 40.2K关注 0票数 2

如何使用SSH向联网系统发送多个命令,以超级用户身份登录并提供密码?

我知道你能做到:

代码语言:javascript
复制
ssh -l <username> target_host

登录,但我不确定如何提供密码和命令,所以这一切都在一行中执行。我正在寻找一个脚本与许多单行命令到网络系统,可以从另一台计算机上运行的一次性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-09 01:50:18

主机ssh root@”命令

例如: ssh root@192.168.1.1 "cat /etc/fstab“

如果您正在尝试执行多个命令,我建议您研究某种形式的Expect脚本。我个人是Pexpect (Python)的粉丝。

使用密钥绕过密码提示(来自man ssh):

文件~/.ssh/authorized_keys列出了允许登录的公钥。当用户登录时,ssh程序告诉服务器它希望使用哪个密钥对进行身份验证。客户端证明它可以访问私钥,并且服务器检查相应的公钥是否被授权接受该帐户。

用户通过运行ssh-keygen(1)创建他/她的密钥对。这会将私钥存储在~/..ssh/identity(协议1)、~/..ssh/id_DSA(协议2 DSA)或~/..ssh/id_RSA(协议2 RSA)中,并将公钥存储在用户主目录的~/..ssh/Identity.pub(协议1)、~/..ssh/id_dsa.pub(协议2 DSA)或~/..ssh/id_rsa.pub(协议2 RSA)中。然后,用户应将公钥复制到远程计算机上他/她的主目录中的~/.ssh/authorized。authorized_keys文件对应于传统的~/.rhosts文件,并且每行有一个键,尽管行可能很长。在此之后,用户无需输入密码即可登录。

票数 8
EN

Stack Overflow用户

发布于 2011-08-09 01:54:30

你总是可以做到的

代码语言:javascript
复制
ssh user@targetHost 'cd /tmp; ls -l'

代码语言:javascript
复制
myDir="/tmp"
ssh  user@targetHost "cd $myDir; ls -l"

我已经将完整的shell脚本链接在一起作为'command‘参数,但我不推荐它(不再) ;-0!

相反,请将脚本复制到远程计算机,然后运行它

代码语言:javascript
复制
 ssh user@targetHost 'yourRemoteScript'

最后,你不能在expect中提供密码,这是许多系统没有的,很多系统都不允许,等等。如果你想要无人值守的操作,你必须使用 ssh_keys。在S.O.上搜索这里,可以找到许多关于如何做到这一点的帖子。

祝你好运,我希望这对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6986264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档