PHPから秘密鍵認証でssh接続する必要があり、その際にssh2_connectとssh2_auth_pubkey_fileの関数を用いて接続を行いました。
関数について調べていると、ssh2_auth_pubkey_fileは認証に用いてた秘密鍵だけではなく公開鍵が必要と記載されていました。(関数名からして公開鍵なので当たり前?)
bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )
記載されている通りに実装したので問題なく動作したのですが、ここで疑問があります。
なぜ、Teratermやsshコマンドからログインする際は秘密鍵のみでログイン可能であるのに、PHPのメソッドでは公開鍵を求めるのでしょうか?
本来は公開鍵が必要なのにTeratermやsshコマンドではそれをなんらかの仕組みで省略しているのでしょうか?
そもそも私自身にネットワークの知見が薄く、、ご教示いただければ幸いです。
PHP
1$resource = ssh2_connect($host, $port); 2ssh2_auth_pubkey_file($resource , $user, $pubkey, $prikey); 3// これで初めて認証が成功しました。適当な$pubkeyではもちろんエラー
Bash
1ssh -P $port -i $prikey $host 2## これで接続可能。なぜ???

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/02 08:22