Ssh

sshfs mount using public key authentication: execvp: No such file or directory

  • January 14, 2013

我正在嘗試使用公鑰身份驗證通過 sshfs 掛載遠端文件系統。我收到此錯誤:execvp: No such file or directory

我可以確認公鑰身份驗證正在使用 ssh:

ssh -i /home/me/.ssh/myKey user@192.168.1.1
Last login: Sun Jan 13 21:25:13 2013 from 192.168.1.2
-bash-3.00$

我可以確認 sshfs 正在使用密碼驗證正確掛載遠端目錄:

sshfs user@192.168.1.1:/remote/dir /local/dir -o ssh_command="ssh"
user@192.168.1.1's password: 
[root@192.168.1.2 .ssh]# df -h
Filesystem            Size  Used Avail Use% Mounted on
...
sshfs#user@192.168.1.1:/remote/dir
                    1000G     0 1000G   0% /local/dir

(我知道上面的“-o”不是必需的。我用它來表明找不到失敗ssh不是失敗的原因)但是當我嘗試將公鑰選項連接到 sshfs 掛載時,比如所以:

sshfs user@192.168.1.1:/remote/dir /local/dir -o ssh_command="ssh -i /home/me/.ssh/myKey",sshfs_debug

我明白了: execvp: No such file or directory在控制台上並且目錄沒有掛載。

我確認“沒有這樣的文件或目錄”不是它找不到ssh(我使用 /usr/bin/ssh 只是為了確定)並且我確認密鑰的路徑是正確的:

ls -al /home/me/.ssh/myKey
-rw-------  1 nobody root 887 Jan 13 20:36 /home/me/.ssh/myKey

遠端主機沒有任何失敗嘗試的日誌文件條目。

據我所知,我正在以記錄的方式使用該命令,所以它應該可以工作,對吧?發生此故障的系統正在執行 RHEL5。

任何人都可以闡明這個問題或指出我正確的方向嗎?我即將失去故障排除的想法。

IP 和使用者名已更改以保護無辜者。抱歉,如果我在複製和粘貼後出現拼寫錯誤。如果找到的話,我會修復它們。

因為我在 CentOS 上遇到了同樣的問題,所以我假設ssh_command它不能像宣傳的那樣工作(也意味著它與大多數其他可以掛接到 SSH 的東西——例如 rsync)的工作方式不同。我開始尋找可以配置 SSH 以設置我需要的選項的方法,而無需我將命令行中的輸入提供給 sshfs,並且我找到了可行的組合。

我添加/etc/ssh/ssh_config了以下幾行:

Host remotehost
HostName 192.168.1.1
User user
IdentityFile /home/me/.ssh/myKey

之後,我不再需要通過 sshfs 向 SSH 提供任何命令行選項,最終得到以下命令:

sshfs user@remotehost:/remote/dir /local/dir

應該注意的是,在 sshfs 命令中是為ssh_configremotehost中的鍵定義的確切值。Host

如果有人知道使用命令行選項執行此任務的方法,我仍然很感興趣,因為我認為它應該需要係統範圍的配置更改才能使這項工作像文件聲稱的那樣是正確的。在那之前,我至少有一個變通辦法。我希望這可以幫助其他人避免我花在上面的時間。

FWIW,此執行緒上的文章 4是我靈感的來源。Post 5 看起來很有希望作為一種能夠避免更改系統範圍配置的方法,但這會導致錯誤execvp: Permission denied

引用自:https://serverfault.com/questions/467741