簡體   English   中英

ssh連接到另一台服務器上的用戶,並以該用戶身份執行shell命令

[英]ssh connect to user on another server and execute shell commands as that user

當我使用ssh連接到另一台服務器時,我正在使用'EOF'標記來執行遠程服務器中的某些命令。 但是他們無法在遠程服務器上執行命令。

此外,如果未啟用無密碼ssh連接,如何從腳本輸入密碼而無需用戶輸入密碼?

$ su - oracle < passwd.txt
standard in must be a tty

如果未啟用密碼較小的連通性(假設啟用了密鑰驗證 - 更安全......)則在機器之間使用密鑰..使用ssh-keygen生成密鑰並使用ssh-copy-id將其復制到遠程服務器

這樣做的好方法是為該命令設置一個無密碼的sudo。

如果沒有sudo命令,請安裝sudo命令,然后使用visudo命令修改sudoers文件,並添加如下行:

youruser    ALL=(oracle) NOPASSWD: the command you want to launch

例如

girish    ALL=(oracle) NOPASSWD: /bin/stop-process

然后,在您的腳本中,只需:

ssh girish@myserver 'sudo -u oracle /bin/stop-process'

並且不會詢問密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM