I am LAZY bones? AN ancient AND boring SITE

2008年 05月 07日 的归档

又解决了一个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 一样.