1.SSHに関する常識
SSH(Secure Shell)は、リモートのLinuxホストに安全にログインしてアクセスできるプロトコルです。もちろん、リモートLinuxホストがsshdサービスをデプロイして構成する必要があることが前提です(Linuxはデフォルトでこのサービスをインストールします)。
リモートLinuxホストのsshdサービスは、2つのセキュリティ認証方法を提供できます。これにより、ログインしてリモートでアクセスできます。
1)パスワードベースの検証-ログインを検証するためのユーザーアカウントとパスワード。
2)キーベースの認証-キーペアを生成する必要があります。キーペアの秘密キーはクライアントに保存する必要があり、キーペアの公開キーはリモートホストに保存する必要があります。名前はauthorized_keysである必要があります。
2.キーペアの作成と配布
リモートホストのIPが192.168.10.10であると仮定します
1.クライアントはLinuxシステムであり、リモートホストにアクセスできることを確認します
1)ssh-keygenコマンドで作成
[root@hollowman ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 按回车键接受默认存储路径或者手动设置存储路径
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 按回车键保持空密码或者设置密钥密码
Enter same passphrase again: 再次回车确认空密码或设置新密码
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d7:1b:9f:65:fd:9b:43:26:c3:8a:26:8f:04:98:2b:0a [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| o . .|
| o . S . + +|
| . . . B *.|
|E. . . . o B .|
|o . ...o . .o|
|. .+. o.|
+-----------------+
この時点で、キーペアは正常に作成され、/ root / .sshディレクトリに保存されます。ここで、秘密キーはid_rsaであり、公開キーはid_rsa.pubです。
[root@hollowman ~]# ls /root/.ssh/
id_rsa id_rsa.pub
2)公開鍵をリモートホストにアップロードします
[root@hollowman ~]# ssh-copy-id 192.168.10.10
このコマンドは、クライアントのsshキーペアの公開キー(id_rsa.pub)をリモートホストの/root/.sshディレクトリにアップロードし、自動的に名前が付けられます。authorized_keys
3)/root/.sshディレクトリには7つの権限が必要であり、authorized_keysには6つの権限が必要であることに注意してください。
2.クライアントはWindowsです
パスワードベースの認証でログインできる場合は、リモートSSHプロトコルツール(winscp、XShell、PuTTYなど)を介して接続します。
1)リモートホストを介してキーペアを生成し、秘密キーをクライアントにコピーして(winscpを実装できます)、インポートしてクライアントのSSHプロトコルツールで使用します。
クライアントのSSHプロトコルツールを使用してキーペアを生成し、公開キーをリモートホストにアップロードすることもできます(winscpも実装できます)。
2)リモートホストの公開鍵パスと名前の形式が正しいことを確認し(/root/.ssh/authorized_keys)、秘密鍵を削除します(id_rsa)
[root@hollowman ~]# cd /root/.ssh
[root@hollowman .ssh]# mv id_rsa.pub authorized_keys
[root@hollowman .ssh]# rm -f id_rsa
[root@hollowman .ssh]# ls
authorized_keys
3)クライアントSSHプロトコルツールは秘密鍵(id_rsa)をインポートし、鍵ベースの認証を介してリモートホストにアクセスします
3. ssh構成ファイルを変更します(ssh_configではなくsshd_configであることに注意してください)。
[root@hollowman .ssh]# vim /etc/ssh/sshd_config
Port 22 //配置远程登录端口,默认为22端口
PubkeyAuthentication yes // 授权密钥方式登录,默认允许
AuthorizedKeysFile .ssh/authorized_keys // 授权密钥文件路径及名称,也就是为什么公钥要改名的原因
PasswordAuthentication yes // 授权口令方式登陆,默认允许
[root@hollowman .ssh]# systemctl restart sshd