このクイックチュートリアルでは、Linuxでsshエラー「sign_and_send_pubkey:署名に失敗しました:エージェントが操作を拒否しました(公開キー)」を修正する方法を示します。
SSH経由でリモートサーバーに接続しようとすると、許可拒否エラーが発生する場合があります。このエラーは、いくつかの理由で発生する可能性があります。そして、この問題の修正は、エラーの背後にある正確な理由によって異なります。
私の場合、Ubuntu16.04デスクトップに公開鍵と秘密鍵を保存していました。 Ubuntu 18.04のリリース後、この新しいバージョンにアップグレードすることにしました。ディストリビューションのアップグレードよりもフレッシュインストールの方が好きです。
そこで、外部ディスクに公開鍵と秘密鍵が含まれる.sshフォルダを含むホームディレクトリのメインフォルダのバックアップを作成しました。
インストールしたら、Ubuntu 18.04でSSHを有効にし、SSHキーを含むすべてを復元しました。
sshを使用してリモートサーバーに接続しようとしたとき、同じ公開鍵と秘密鍵を持っていたので、すぐに機能すると思いました。
しかし、それはうまくいきませんでした。 SSHでこのエラーが発生しました:
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).
別のソースからSSHキーをコピーした同様の状況にある場合は、このSSHエラーを修正する方法を紹介します。
〜/.sshフォルダーとそのコンテンツのファイル権限を修正します
経験則として、sshディレクトリとそのファイル(秘密鍵、公開鍵、known_hosts、ssh構成ファイルなど)に次の権限を設定できます
要素 | 許可 |
---|---|
.sshディレクトリ | 700((drwx ------) |
公開キー | 644(-rw-r--r-) |
秘密鍵 | 600(-rw -------) |
authorized_keys | 600(-rw -------) |
known_hosts | 600(-rw -------) |
config | 600(-rw -------) |
すべてのファイルを持っているわけではありませんが、ここには公開鍵と秘密鍵が必要です。
それでは、sshキーやその他のファイルのファイル権限を変更する方法を見てみましょう。
修正許可が拒否されました(公開キー)エラー
したがって、問題はここでのファイル権限にあります。ご覧のとおり、ファイルをコピーしたとき、USBはMicrosoftのFATファイル形式でした。このファイルは、UNIX/Linuxファイルのアクセス許可をサポートしていません。
そのため、コピーされたsshキーの権限が777に変更されました。
SSHの場合、ファイルのアクセス許可がオープンすぎます。公開鍵または秘密鍵に対して777の権限を持つことは許可されていません。これが、SSHがここでの接続を拒否した理由です。
ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12 2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek 398 Nov 12 2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts
秘密鍵には、ユーザーのみの読み取りおよび書き込み権限が必要であり、グループやその他のユーザーには他の権限はありません。
chmodコマンドを使用して権限を変更する必要があります:
chmod 600 ~/.ssh/id_rsa
同様に、公開鍵には、グループやその他の書き込みと実行のアクセス許可を設定しないでください。
chmod 644 ~/.ssh/id_rsa.pub
正しい権限を設定したので、sshに再度接続できます。このとき、キーのロックを解除するために管理者パスワードを要求されます。管理者パスワードを入力すると、準備が整います。
これは、ファイルのコピーと貼り付けは悪い考えであり、適切なバックアップを作成する必要があるという教訓も教えてくれました。そうしないと、すべてのファイルに危険な777権限が付与されます。ホームディレクトリ全体のファイル権限を再帰的に変更して信頼する必要がありましたが、それは簡単なことではありませんでした。
前に述べたように、このエラーにはさまざまな理由が考えられます。ファイルを開く権限に関連する問題の場合、この修正は、SSHでの権限拒否(公開鍵)エラーの修正に役立つはずです。興味がある場合は、SSHの基本について詳しく読むことができます。
修正がうまくいったかどうかをコメントセクションで知らせてください。また、他のコンピューターにsshキーをコピーすることについての意見を提案してください。