任何人都知道如何通過密碼初始本身ssh/su?如何通過ssh/su - 通過本身傳遞密碼?
像:
ssh [email protected] -p [password]
pbrun su - unix_owner -p [password]
我怎樣才能做到這一點?
它不應該彈出密碼或任何RSA認證就像是/否。
任何人都知道如何通過密碼初始本身ssh/su?如何通過ssh/su - 通過本身傳遞密碼?
像:
ssh [email protected] -p [password]
pbrun su - unix_owner -p [password]
我怎樣才能做到這一點?
它不應該彈出密碼或任何RSA認證就像是/否。
我想你可能需要一個sudoers file以類似的方式完成su
的東西,而不會被提示輸入密碼。
我從來沒有使用SSH沒有密碼的提示,卻發現this這表明它可以完成...
不能做到這一點。你正在調用遠程機器上的passwd程序。如果有一種方法可以在不提示舊密碼的情況下更改密碼,任何人都可以在您的控制檯上更改密碼。你仍然需要在通過ssh連接
至於SSH通過密碼,你可以使用RSA密鑰,而那些不會提示你輸入密碼。
至於蘇,那就要進行硬編碼,或者您需要創建自己的應用程序作爲各種各樣的包裝。
傳遞明文密碼未被SSH意。 嘗試瞭解ssh密鑰認證(谷歌會幫助你),你不需要再輸入你的密碼。遠程機器
> mkdir -p ~/.ssh #if neccessary
> touch ~/.ssh/authorized_keys2
> chmod go-rwx $HOME/.ssh/authorized_keys2
在本地機器上
:
確定,更詳細的,試試這個
> ssh-keygen # if neccessary
> cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat >> .ssh/authorized_keys2 && chmod 0600 ~/.ssh/authorized_keys2"
我不認爲你可以在密碼直接傳遞到ssh命令(否則它將被存儲在你的歷史記錄中)。爲什麼不使用密鑰來跳過身份驗證提示。
一個更好的辦法是使用SSH密鑰,像其他答案建議,但如果你真的需要它,你可以使用expect了點。 只需創建這樣一個expect.file:
#!/usr/bin/env expect
set username youruser
set pass yourpassword
set host yourhost
spawn ssh ${username}@${host}
expect -re "password:"
send "${pass}\r"
expect -re "$"
interact
並執行它:
expect expect.file
你有沒有考慮使用SSH密鑰呢?這比在命令行上指定密碼更好。 –
你是不是想通過腳本來自動遠程進程(即登錄,做一些事情,註銷),或者是你想自動登錄到一個交互式的殼呢?一個比另一個容易。 –