
我意識到我無法再連接到位於 的網路伺服器x.x.202.50
。昨天我更改了以下 ssh 設定檔:/share/homes/admin/.ssh/config
新增以下設定:
# ssh (secure shell) configuration file
Host webserver
HostName x.x.212.50
User user1
IdentityFile ~/.ssh/id_rsa `
我這樣做的原因是為了同步目的啟用金鑰登入(使用Unison
)。
現在,當我嘗試連接到伺服器時,我收到以下錯誤:
/share/homes/admin/.ssh/config 的所有者或權限錯誤
Putty
我從 Windows 10 和 Linux 伺服器到另一個 Linux 伺服器建立連線。
我因為參與一個項目,需要連接伺服器,不知道怎麼做。有人知道怎麼做這個嗎?
答案1
您需要更改.ssh目錄的權限。運行以下命令(我發現 600 不會自行修復它):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
答案2
可能影響安全性的文件(私鑰、設定檔、授權金鑰)的一般規則是,除所有者之外的任何人都不能寫入它們(私鑰不應該是可存取的!)。
錯誤來自openssh 程式碼以下:
if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
(sb.st_mode & 022) != 0))
fatal("Bad owner or permissions on %s", filename);
因此,將其翻譯為英語意味著設定檔必須由 root 或運行該檔案的使用者擁有,ssh
並且任何群組或其他使用者都不能寫入。
正如評論中已經指出的,您可能以某種方式將此權限授予某人,因此刪除這些權限應該可以解決該問題:
chmod go-w /share/homes/admin/.ssh/config
答案3
我有一台單用戶 Linux 計算機,它與 root 帳戶共享相同的“.ssh”目錄。 /root/.ssh 是指向使用者的「/home/username/.ssh」資料夾的符號連結。
我最近才新增了一個 ~/.ssh/config 文件,這導致 SSH 在從 root 帳戶呼叫 SSH 和 SSHFS 時給出錯誤訊息。我的解決方案是執行以下操作:
chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config
不過,當我必須編輯文件時,這是一個問題,因為它需要我弄亂文件的權限和所有權,然後將它們翻轉回來。但這是我自己的問題,因為我選擇在帳戶之間共用資料夾。我建立了一些 shell 腳本,僅在使用 root 使用者帳戶呼叫「sshfs」或「ssh」命令時才翻轉權限。
答案4
其他答案僅在權限錯誤的情況下解決問題。然而,就我而言,問題是文件所有者錯誤。您可以運行ls -l ~/.ssh
查看有關權限和所有者的信息。文件所有者可以在第三列中看到。如果錯誤則執行:
chown <newOwner> <fileName>