Ssh
OpenSSH >=7.2 是否支持遠端 Unix 套接字轉發的本地波浪號擴展
我正在嘗試將
gpg-agent
Unix 套接字轉發到遠端機器。我嘗試了以下兩個版本的遠端轉發命令:
- 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的建議編輯