我有一个需要级联 SSH 的程序,即它 ssh A 服务器,然后使用相同的连接 ssh B 服务器。服务器 A 充当桥梁。我有一个用于 ssh 第一台服务器的 shell 实例。
当我在做 ssh user@ipAddress 时,它要求输入密码。我试过 ssh user@ipAddress\npassword。它似乎不起作用。
我不能使用任何外部工具,如 ssh-agent 或期望。我无法控制服务器 A。
有没有办法可以提供密码作为参数或输入密码?
谢谢!!
我有一个需要级联 SSH 的程序,即它 ssh A 服务器,然后使用相同的连接 ssh B 服务器。服务器 A 充当桥梁。我有一个用于 ssh 第一台服务器的 shell 实例。
当我在做 ssh user@ipAddress 时,它要求输入密码。我试过 ssh user@ipAddress\npassword。它似乎不起作用。
我不能使用任何外部工具,如 ssh-agent 或期望。我无法控制服务器 A。
有没有办法可以提供密码作为参数或输入密码?
谢谢!!
由于您不能使用 expect 或 ssh-keygen
以下 gem 可用于编写密码 ssh 会话脚本
http://www.debian-administration.org/articles/587
#!/bin/bash
# Copyright (C) 2008 John S. Skogtvedt <jss at bzz.no>
# Licence: GNU GPL v3 or later at your option
if [ -n "$SSH_ASKPASS_FD" ]
then
read password <&$SSH_ASKPASS_FD
echo "$password"
exit 0
elif [ $# -lt 1 ]
then
echo "Usage: echo password | $0 <ssh command line>" >&2
exit 1
fi
export SSH_ASKPASS=$0
export SSH_ASKPASS_FD=4
[ "$DISPLAY" ] || export DISPLAY=dummy:0
read password
exec 3<&0
# write password 100 times to make repeated ssh connections work
for x in $(seq 100)
do
echo "$password"
done | exec setsid "$@" 4<&0 0<&3
将以上内容保存asksshpass.sh
即可chmod +x
echo "yourpassword" | ./sshaskpass.sh ssh user@server.example.com date