SSH (Secure SHELL) は、リモート サーバーにログインしてコマンドやプログラムを実行するために使用されるオープン ソースの信頼できるネットワーク プロトコルです。
また、Secure Copy (SCP) コマンドと rsync コマンドを使用して、ネットワーク経由であるコンピュータから別のコンピュータにファイルを転送するためにも使用されます。
この記事[1]では、CentOS、Fedora、Rocky Linux、AlmaLinux などの RHEL ベースの Linux ディストリビューション、および Ubuntu や Mint などの Debian ベースのディストリビューションで、ssh を使用してパスワードなしのログインを設定する方法を説明します。キーを押すと、パスワードを入力せずにリモート Linux サーバーに接続します。
SSH キーを使用したパスワードなしのログインを使用すると、2 つの Linux サーバー間の信頼性が高まり、ファイルの同期や転送が容易になります。
私の設置環境
SSH Client : 192.168.0.12 ( Fedora 36 )
SSH Remote Host : 192.168.0.11 ( CentOS 8 )
複数の Linux リモート サーバーを扱う場合、SSH パスワードなしログインは、スクリプトを使用した自動バックアップ、SCP コマンドを使用したファイル同期、リモート コマンド実行などのタスクを自動化する最良の方法の 1 つです。
この例では、サーバー 192.168.0.12 からユーザー tecmint として 192.168.0.11 にユーザー sheena としてログインするための SSH パスワードなし自動ログインを設定します。
1. 認証 SSH-Keygen キーを作成する
まず、ユーザー tecmint を使用してサーバー 192.168.0.12 にログインし、次のコマンドを使用して公開キーのペアを生成します。
$ ssh-keygen -t rsa
2. SSHキーをアップロードする
サーバー 192.168.0.12 から SSH を使用し、新しく生成された公開キー (id_rsa.pub) をサーバー 192.168.0.11 上の sheena の .ssh ディレクトリにアップロードします。ファイル名はauthorized_keysです。
$ ssh-copy-id [email protected]
リモートサーバー上の ~/.ssh ディレクトリと ~/.ssh/authorized_keys ファイルに正しい権限が設定されていることを確認してください。
$ ssh [email protected] "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
3. パスワード検証を無効にする (オプション)
为了提高安全性,您可以在远程服务器上禁用密码身份验证,仅允许 SSH 密钥身份验证。为此,请打开远程服务器上的 SSH 服务器配置文件:
$ sudo nano /etc/ssh/sshd_config
OR
$ sudo vi /etc/ssh/sshd_config
找到包含PasswordAuthentication 的行并将其设置为no。
PasswordAuthentication no
保存文件并重新启动 SSH 服务。
$ sudo systemctl restart sshd
4. 测试 SSH 无密码登录
从现在开始,您可以以 sheena 用户身份从服务器 192.168.0.12 以 howtoing 用户身份登录 192.168.0.11,无需密码。
$ ssh [email protected]
在本文中,您学习了如何使用 ssh 密钥设置 SSH 无密码登录。我希望这个过程很简单。如果您有任何疑问,请在下面的评论部分发表。
Reference
Source: https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
本文由 mdnice 多平台发布