はじめに
sshやscpコマンドで接続する際、通常はパスワードを入力する必要がある。
[root@testserver1 /]# ssh testserver2
root@testserver2's password: ★要パスワード入力
Last login: Fri Sep 10 23:52:56 2021 from testserver1
[root@testserver2 ~]#
本記事ではノンパス(パスワードなし)でSSH接続する方法を記載する。
検証環境
SSH接続元/先サーバともに、「CentOS 7.9」
ノンパス(パスワードなし)でSSH接続する方法
[方法1] 接続元サーバで秘密鍵・公開鍵のセットを作成し、公開鍵を接続先サーバに登録する
秘密鍵・公開鍵の作成【接続元サーバ】
[root@testserver1 /]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ★入力なしでEnter
Enter passphrase (empty for no passphrase): ★入力なしでEnter
Enter same passphrase again: ★入力なしでEnter
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:
SHA256:h0pob*********************E3gDxjVbw root@testserver1
The key's randomart image is:
+---[RSA 2048]----+
| o o. |
| + . . |
〜〜〜中略〜〜〜
|...o..o +o |
+----[SHA256]-----+
[root@testserver1 /]#
[root@testserver1 /]# ls -l ~/.ssh/
total 12
-rw------- 1 root root 1675 Sep 11 00:17 id_rsa ★秘密鍵が作成された
-rw-r--r-- 1 root root 398 Sep 11 00:17 id_rsa.pub ★公開鍵が作成された
-rw-r--r-- 1 root root 184 Sep 5 02:28 known_hosts
[root@testserver1 /]#
公開鍵を接続先サーバにコピー【接続元サーバ】
[root@testserver1 /]# ssh-copy-id -i ~/.ssh//id_rsa.pub root@testserver2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh//id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@testserver2's password: ★接続先サーバ[testserver2]のrootユーザのパスワードを入力
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@testserver2'"
and check to make sure that only the key(s) you wanted were added.
[root@testserver1 /]#
コピーされた公開鍵の確認【接続先サーバ】
[root@testserver2 /]# ls -l ~/.ssh/
total 8
-rw------- 1 root root 398 Sep 11 00:28 authorized_keys ★公開鍵が登録されるファイル
-rw-r--r-- 1 root root 184 Sep 5 02:30 known_hosts
[root@testserver2 /]#
[root@testserver2 /]# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC********************9ecHi1 root@testserver1 ★コピーされた公開鍵情報
[root@testserver2 /]#
SSH接続【接続元サーバ】
パスワード入力を求められることなく、SSH接続できた。
[root@testserver1 /]# ssh root@testserver2
Last login: Fri Sep 10 23:53:21 2021 from testserver1
[root@testserver2 ~]#
[root@testserver2 ~]# uname -n
testserver2
[root@testserver2 ~]#
[方法2] sshpassコマンドを使う
ノンパスではないが、パスワードを引数として入力してSSH接続する方法もある。
sshpassコマンドをインストールして使用する。
sshコマンドのインストール【接続元サーバ】
[root@testserver1 /]# yum install sshpass -y
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: centos-distro.cavecreek.net
* extras: centos-distro.cavecreek.net
* updates: centos-distro.1gservers.com
Resolving Dependencies
--> Running transaction check
---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Installing:
sshpass x86_64 1.06-2.el7 extras 21 k
Transaction Summary
==========================================================================================================
Install 1 Package
Total download size: 21 k
Installed size: 38 k
Downloading packages:
sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : sshpass-1.06-2.el7.x86_64 1/1
Verifying : sshpass-1.06-2.el7.x86_64 1/1
Installed:
sshpass.x86_64 0:1.06-2.el7
Complete!
[root@testserver1 /]#
sshpassコマンドを使用したSSH接続【接続元サーバ】
[root@testserver1 /]# sshpass -p '<接続先サーバのrootパスワード>' ssh root@testserver2
Last login: Sat Sep 11 00:43:43 2021 from test_testserver1_1.test_dockernet
[root@testserver2 ~]#
[root@testserver2 ~]# uname -n
testserver2
[root@testserver2 ~]#