gpg-agent
Unixソケットをリモートコンピュータに転送しようとしています。リモート転送コマンドの次の2つのバージョンを試しました。
- ㅏ:
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
リモートでコマンドを渡すことでローカルホームディレクトリを拡張できるかどうか疑問に思います。そうでなければなぜですか?
ベストアンサー1
~
いくつかの手順で拡張する必要があります。通常、このプログラムはシェルです。 sshdデーモンはシェルへのパスを提供せず、パスを拡張しません。
ただし、現在のユーザーのホームディレクトリはとにかく作業ディレクトリなので、拡張する必要はありません。
努力する
ssh -vvv -N -R ~/.gnupg/S.gpg-agent:${HOME}/.gnupg/S.gpg-agent.extra {HOST}
編集する:
これは、クライアントではなくホストの作業ディレクトリが常にターゲットユーザーのホームディレクトリであるために機能します。
SSHサーバーは~
環境変数を拡張しませんが、ホスト上でコードを実行して、SSHサーバーが使用できる既知の場所へのリンクまたはシンボリックリンクを生成できる必要があります。
編集済みクサラナンダが提案したとおり