Bash
腳本 ssh 登錄到伺服器並傳遞 root 密碼
我編寫了一個期望腳本來自動化 ssh 的登錄過程。我的使用者帳戶設置了 rsa 密鑰,但是一旦我登錄,我想切換到 root,但遠端伺服器掛在密碼上。我可以看到將密碼提供給遠端伺服器的腳本,儘管它是可見的,這是我想知道是否可以隱藏的另一件事。但是有人可以告訴我為什麼這是掛起的嗎?
#!/usr/bin/expect spawn ssh <server> su - expect "Password" send "MyPassword\r" interact
它就在這個螢幕上:
Password: "password"
游標正下方不斷閃爍。在 /var/log/secure 中,我將腳本登錄嘗試的行與我手動獲取 root 的正常行進行了比較。
腳本蘇:
Jun 7 15:17:50 <server> su: pam_unix(su-l:session): session opened for user root by (uid=1000)
手冊您的:
Jun 7 15:18:48 <server> su: pam_unix(su-l:session): session opened for user root by <user>(uid=1000)
唯一不同的是,手動登錄列出了我的使用者名。
我嘗試將命令更改為:
spawn ssh <server> su - root spawn ssh <server> sudo su
但沒有一個工作。我怎樣才能做到這一點?
在腳本中,我必須將 -t 標誌傳遞給它以強制分配 tty:
spawn ssh -t <server> su -
它現在按預期工作。