當我使用ssh
連接到另一臺服務器時,我正在使用'EOF'標記來執行遠程服務器中的某些命令。但是他們無法在遠程服務器上執行命令。ssh連接到另一臺服務器上的用戶並以該用戶身份執行shell命令
此外,當無密碼ssh
連接未啓用,如何從腳本輸入密碼,而無需用戶輸入密碼?
$ su - oracle < passwd.txt
standard in must be a tty
當我使用ssh
連接到另一臺服務器時,我正在使用'EOF'標記來執行遠程服務器中的某些命令。但是他們無法在遠程服務器上執行命令。ssh連接到另一臺服務器上的用戶並以該用戶身份執行shell命令
此外,當無密碼ssh
連接未啓用,如何從腳本輸入密碼,而無需用戶輸入密碼?
$ su - oracle < passwd.txt
standard in must be a tty
如果不啓用密碼少conectivity(假設鍵AUTH已啓用 - 更安全的..)然後機器間使用鍵.. 使用ssh-keygen生成密鑰,並使用SSH-其複製到遠程服務器copy-id
我想在不啓用無密碼連接的情況下做到這一點 –
這樣做的好方法是爲該命令設置一個無密碼的sudo。
安裝sudo
命令,如果你沒有它,然後修改sudoers文件與visudo
命令文件,並添加這樣一行:
youruser ALL=(oracle) NOPASSWD: the command you want to launch
例如
girish ALL=(oracle) NOPASSWD: /bin/stop-process
然後,在你的腳本中,只是這樣做:
ssh [email protected] 'sudo -u oracle /bin/stop-process'
並且沒有密碼w生病了。
嗨。我知道使用此示例腳本的密碼連接性較低。但我正在尋找一種方法來執行此操作,以將密碼保存在腳本中或OS中的單獨文件中。在我們的服務器中,它的安全措施是不爲任何命令啓用無密碼連接。 –
安全性是不要將密碼保存在腳本中的純文本中。使用ssh-key創建一個可以做到這一點的特殊用戶帳戶,並且儘可能安全。 – blue112
在我所示的例子中,我將密碼保存在只有當前用戶可以打開的文本文件中,只有我知道該位置的安全性。我試圖找到一種方法來使用該文本文件登錄 –
請添加任何錯誤消息和執行的實際命令(複製粘貼,不要重新輸入)。 – Kusalananda
添加錯誤我得到,而SSH連接到另一臺服務器。 –
考慮使用'sshpass'或'expect'。請參閱此[post](http://stackoverflow.com/a/27994731/1328439)。 –