[英]non-interactive password SSH in JAVA
我有一個程序,需要級聯SSH,即它ssh一個服務器,然后使用相同的連接ssh B服務器。 服務器A充當橋梁。 我有一個shell實例,用於ssh第一個服務器。
當我在做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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.