Ssh
除非從腳本執行,否則 SSH 身份驗證是否有效?
我已按照類似於本文中的說明設置我的伺服器以允許密鑰/對身份驗證。
據我所知,它工作正常。例如,如果我執行以下操作,它可以正常工作:
ssh myusername@mydomain.com
它不會提示我輸入密碼。這就是我想要發生的事情。但是,如果我寫一個像這樣的小 bash 腳本:
#!/bin/bash -x ssh myusername@mydomain.com
並執行:
sudo ./mytestscript.sh
…它會提示我:
myusername@mydomain.com's password:
我究竟做錯了什麼?我需要能夠在不提示輸入密碼的情況下從我的腳本中登錄!
我猜如果你在沒有
sudo
. 如果是這種情況,那麼您的問題是 ssh 現在正在 root 的主目錄而不是您的主目錄中尋找公鑰。向您的 ssh 命令添加一個-i
選項,指定您已配置的密鑰的路徑,或者改用 root 的公鑰。如果您
ssh-agent
用於儲存密鑰的解密版本而不是使用無密碼密鑰,則還需要編輯/etc/sudoers
並添加env_keep+="SSH_AUTH_SOCK SVN_SSH
到Defaults
ssh 才能找到您的身份驗證套接字。