2014-02-11 31 views
1

我的SSH服務器同時使用密碼和身份文件驗證。我不想改變這種行爲。如何調用ssh所以它只會使用標識文件

我想檢查服務器(用戶)是否知道$ THE_IDENTITY文件。

這就是爲什麼我使用此代碼:

echo "Check if server knows the SSH identity:" 
if [ "$(ssh [email protected] -i ${SSH_ID_FILE} echo 'hello')" == 'hello' ]; then 
    echo "Server already knows me" 
else 
    echo "Registering SSH ID Key to the server..." 
    ssh-copy-id -i $SSH_ID_FILE "[email protected]" 
fi 

但是,問題是,裏面的「如果」的聲明,如果服務器不知道ID文件,它要求的密碼,這就是爲什麼我的代碼工作錯誤。

如何更改我的SSH線,使其退出,如果它與ID文件失敗?

回答

0

有一個關鍵字選項告訴SSH不使用密碼驗證:

ssh [email protected] -o PasswordAuthentication=no ... 

在Unix系統中,所有的關鍵字選項的詳細信息可找到:

man ssh_config 
相關問題