CPUが高くなるOpenSSHの問題をデバッグしようとしています。しかし、その前に、この接続にSSHエージェント転送機能が使用されているかどうか確認したいと思います。次に、2つのチャネルを割り当てた子SSHサーバのコアダンプを示します。 channels [1]はssh-agentと通信しているようです。私は、次のヘルプ必要OpenSSH - ssh-agentフォワーディングですか?
:私はSSHクライアントにssh-agentの交渉を知っているよう
1)が、しかしここでは、SSHサーバーに話をすること に思えます。私たちはssh-agentフォワーディング を持っていると言えますか?
2)このシナリオを再現するにはどうすればよいですか?
3) データから親切に教えてください。
(gdb) p *channels[0]
type = 0x4,
self = 0x0,
remote_id = 0x0,
istate = 0x0,
ostate = 0x3,
flags = 0x0,
rfd = 0xd,
wfd = 0xffffffff,
efd = 0xffffffff,
sock = 0xffffffff,
ctl_chan = 0xffffffff,
isatty = 0x1,
client_tty = 0x0,
path = 0x0,
listening_port = 0x0,
listening_addr = 0x0,
host_port = 0x0,
remote_name = 0xb0f2e4a0 "server-session",
ctype = 0x187df64 "session",
open_confirm = 0,
open_confirm_ctx = 0x0,
detach_user = 0x1855650 <session_close_by_channel>,
detach_close = 0x1,
=============================
(gdb) p *channels[1]
type = 0x6,
self = 0x1,
remote_id = 0xffffffff,
istate = 0x0,
ostate = 0x0,
flags = 0x0,
rfd = 0x9,
wfd = 0x9,
efd = 0xffffffff,
sock = 0x9,
ctl_chan = 0xffffffff,
path = 0xb0f2e7a0 "/tmp/ssh-00015945aa/agent.15945",
listening_port = 0x0,
listening_addr = 0x0,
host_port = 0x0,
remote_name = 0xb0f2e720 "auth socket",
ctype = 0x187d92c "auth socket"
ありがとうございました。 1)他のクライアントがこの機能を使って自分のssh-agentをどのように使用できるかについてのあなたの返答を詳しく述べてください。可能であれば、このソケット転送の仕組みについても説明してください。 –
他のクライアントは、環境変数 'SSH_AUTH_SOCK'にあるソケットによってssh-agentを使用しています。フォワーディングはあなたが素朴に期待するように機能します。両側にソケットがあり、一方の側が最初のソケットに書き込み、もう一方が第2のソケットからデータを読み取ることができます。 – Jakuje