Ssh

只需輸入一次密碼即可打開多個隧道(網關中的所有帳戶都具有相同的通行證)

  • December 5, 2018

我想一次打開許多隧道,它們都有相同的長密碼。

-f即,

ssh -fN -p 22 usr1@gate1 -L 10001:ip1:22
ssh -fN -p 22 usr2@gate2 -L 10002:ip2:22
...
ssh -fN -p 22 usrn@gaten -L 1000n:ipn:22

我可以在後台打開隧道,這樣我就可以一起執行它們,然後只需連續輸入與我打開的隧道數量一樣多的密碼(n)。

鑑於我輸入的內容是相同的,我想找到一種只輸入一次的方法,但仍然以安全的方式進行。

我使用https://stackoverflow.com/a/3980904/1424395https://unix.stackexchange.com/a/59632/269821找到了解決方案

我使用read -s將密碼獲取到變數中,然後sshpass將密碼傳遞給ssh.

#!/usr/bin/env bash

# Read Password
echo -n Password:
read -s password
echo

sshpass -p $password ssh -fN -p 22 usr1@gate1 -L 10001:ip1:22
sshpass -p $password ssh -fN -p 22 usr2@gate2 -L 10002:ip2:22
...
sshpass -p $password ssh -fN -p 22 usrn@gaten -L 1000n:ipn:22

引用自:https://unix.stackexchange.com/questions/451732