又解决了一个ssh的问题
经常要ssh到一个服务器里面,通过这个服务器再ssh到另一个服务器(出于安全考虑,后者没有公网IP,必须先ssh到前者,再跳转),以前都是手工输命令,想用一行命令解决,于是这样写:
ssh userA@hostA “bash -c ‘ssh userB@hostB'”
倒是登上去了,但是出现一行:
Pseudo-terminal will not be allocated because stdin is not a terminal.
就没有任何提示了,而且也可以正常执行命令,就是没了PS1,多少觉得有些不爽.
今天发现,只要这样写,就可以一起正常了:
ssh -t userA@hostA “bash -c ‘ssh userB@hostB'”
哈哈, -t Force pseudo-tty allocation.
上面的情况是两步登陆都有公钥的,下面要解决提示输入密码的时候,改怎么办了….难道非得用 expect ?
PS: 有没有人知道ssh命令里面能不能直接输入密码的? 就像 ftp ftp://user:password@host 一样.
magicgod 在 2008年05月07日 19:00 说:【 】
把登录客户端的public key加入到ssh服务器用户的authorized_keys里就行了,要比ftp安全和方便。
leeight的马甲 在 2008年05月08日 09:12 说:【 】
我用的就是expect和luit的组合
expect用来输入密码
luit用来做编码转化
9linux 在 2008年05月24日 10:23 说:【 】
-pw不是能吗?
9linux 在 2008年05月24日 10:25 说:【 】
-pw passw login with specified password
我用的是windows下的plink.exe
bones7456 在 2008年05月24日 15:37 说:【 】
plink.exe是什么啊?我本机和远程都是linux啊。。。