Ssh

OpenSSH >=7.2 是否支持遠端 Unix 套接字轉發的本地波浪號擴展

  • August 9, 2018

我正在嘗試將gpg-agentUnix 套接字轉發到遠端機器。我嘗試了以下兩個版本的遠端轉發命令:

  • A:ssh -vvv -N -R ~/.gnupg/S.gpg-agent:~/.gnupg/S.gpg-agent.extra {HOST}
  • 乙:ssh -vvv -N -R ~/.gnupg/S.gpg-agent:/home/{USER}/.gnupg/S.gpg-agent.extra {HOST}

他們都在初始ssh連接後報告成功的遠端轉發。但是debug1: connect_next: host ~/.gnupg/S.gpg-agent.extra ([unix]:~/.gnupg/S.gpg-agent.extra): No such file or directory,當在遠端機器上嘗試實際數據連接時,選項 A 的套接字失敗,gpg-connect-agent /bye而選項 B 的套接字工作正常。

我想知道是否可以使用ssh遠端轉發命令進行本地主目錄擴展。如果不是,為什麼?

~必須由某些程序擴展。通常這個程序是shell。sshd 守護程序不會將路徑提供給 shell,也不會擴展路徑。

但是您不需要擴展目前使用者的主目錄,因為它無論如何都是工作目錄。

嘗試

ssh -vvv -N -R ~/.gnupg/S.gpg-agent:${HOME}/.gnupg/S.gpg-agent.extra {HOST}

編輯:

這是因為主機(而不是客戶端)上的工作目錄始終是目標使用者的主目錄。

ssh 伺服器不會擴展~環境變數,但應該可以在主機上執行程式碼以創建到 ssh 伺服器可以使用的已知位置的連結或符號連結。

根據Kusalananda的建議編輯

引用自:https://unix.stackexchange.com/questions/460963