Passwort weglassen expect Automatisches SSH

SSH mit expect für passwortgeschützte Server automatisieren

In der Linux PC/Server-Befehlszeile und Bash-Sprache stelle ich eine Methode vor, um automatisch über expect SSH zu Servern herzustellen, bei denen das Weglassen von Passwörtern nicht möglich ist. Für VPS und Ihre eigenen Server ist es in Ordnung, aber im Fall von Xserver ist das Weglassen des SSH-Passworts irgendwie nicht möglich. Ich habe es mit expect geschafft, also stelle ich es vor.

Shou Arisaka
1 Min. Lesezeit
1. Nov. 2025

In der Linux PC/Server-Befehlszeile und Bash-Sprache stelle ich eine Methode vor, um automatisch über expect SSH zu Servern herzustellen, bei denen das Weglassen von Passwörtern nicht möglich ist.

Für VPS und Ihre eigenen Server ist es in Ordnung, aber im Fall von Xserver ist das Weglassen des SSH-Passworts irgendwie nicht möglich.

Ich habe es mit expect geschafft, also stelle ich es vor.


expecto(){

: usage: expecto [command] [password]
# e.g. expecto 'ssh -R 52698:localhost:52698 -p 10022 -i ~/.ssh/example.key [email protected]' "${PASSWORD}"

cat << EOT > ~/tmp/tmp && chmod 755 ~/tmp/tmp && ~/tmp/tmp && > ~/tmp/tmp
#!/usr/bin/expect -f
# exp_internal 1    ; # uncomment to turn on expect debugging
set timeout -1
spawn ${1}
expect {
    "passphrase" {
      send "${2}\n"
      interact
      exit 0
    }
    "password" {
      send "${2}\n"
      interact
      exit 0
    }
  }
EOT

}

Beim direkten Schreiben des SSH-Befehls

expecto 'ssh -R 52698:localhost:52698 -p 10022 -i ~/.ssh/yuis.key [email protected]' $XSERV_PASSWORD

Bei Verwendung eines Alias-SSH-Befehls muss er erweitert werden

alias xserv='ssh -R 52698:localhost:52698 -p 10022 -i ~/.ssh/yuis.key [email protected]'
expecto \"$(echo ${BASH_ALIASES[xserv]})\" $XSERV_PASSWORD

Bei Verwendung benutzerdefinierter Bash-Befehle

expecto 'bash -ic "sharefile hoge.md"' $XSERV_PASSWORD

Diesen Artikel teilen

Shou Arisaka 1. Nov. 2025

🔗 Links kopieren