Linuxでは通信を暗号化し、コンピュータ、ホストへのログインを安全に行える「SSH」があります。
「ssh」コマンドの使い方(Linux)
「ssh」は通信を暗号化し、安全なリモート通信をするために使用されます。
また、「ssh」コマンドSSHサーバー側(受ける側)、クライアント側(アクセスする側)に別れ、それぞれパッケージをインストールする必要があります。
OpenSSHサーバをインストールする
CentOS8
# dnf -y install openssh-server
CentOS7
# yum -y install openssh-server
OpenSSHクライアントをインストールする
CentOS8
# dnf -y install openssh-clients
CentOS7
# yum -y install openssh-clients
「ssh」でリモートホストへ接続
sshコマンドを利用してリモートホストへログインを実行します。
sshアクセス先は、localhost(自分自身)、IPアドレス、名前解決ができるのであれば、ホスト名を指定してアクセスすることが可能です。
自分自身にSSH接続(動作テストなどで実施)
# ssh localhost
リモートホストへSSH接続(IPアドレス指定)
# ssh 192.168.0.1
リモートホストへSSH接続(ホスト名指定)
# ssh test.co.jp
初めてのSSH接続ではホスト公開鍵を受け入れるかを確認される
以下のように初めてリモートログインするホストでは、事前にホスト側の公開鍵を受け入れるか確認されます。※4行目
問題がない場合「yes」を入力します。
その後、パスワードが求められるので入力し、ログインをします。
[root@centos8 ~]# ssh 172.17.0.2 The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established. ECDSA key fingerprint is SHA256:V1Kv5/+HQMjP+5bFL7soR7njYjjoKhTL6ARRLxchZFs. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts. root@172.17.0.2's password: Last failed login: Sun Feb 21 02:56:26 UTC 2021 from 172.17.0.2 on ssh:notty There was 1 failed login attempt since the last successful login. Last login: Sun Feb 21 02:24:32 2021 from 172.17.0.1
ユーザー名でsshログインする方法
ユーザー名でアクセスする場合は以下のようにリモートホストの宛先の前に「@」マークをつけてユーザー名を指定します。
以下の例ではrootユーザーでログインした例となります。
# ssh root@172.17.0.2 root@localhost's password: Last login: Sun Feb 14 08:09:32 2021 from 172.17.0.1 [root@centos8 ~]#
ポート指定でsshログインをする方法
sshは通常「22」番ポートとなりますが、ポート番号を変更している構成もあります。
以下では、ポート「2222」でsshアクセスをした例となります。
ポート指定は「-p」オプションを使用して実行します。
# ssh -p 2222 root@172.17.0.2 root@localhost's password: Last login: Sun Feb 14 08:09:32 2021 from 172.17.0.1 [root@centos8 ~]#
リモートホスト先で1コマンドだけを実行したいときは、sshコマンドの後に実行コマンドをつける
毎回、sshでログインしてコマンドを確認するのが面倒な場合は、sshコマンドの後に、実行コマンドを入力することで、出力結果が確認できます。
以下の例では、「ls」コマンドを実行した例となります。
# ssh 172.17.0.2 ls root@localhost's password: anaconda-ks.cfg anaconda-post.log original-ks.cfg
ssh公開鍵認証
sshではパスワード認証の他にも、公開鍵暗号を利用した認証ができます。
事前にアクセスされる側のホストで秘密鍵と公開鍵を「ssh-keygen」コマンドで生成します。
公開鍵をアクセスする側のホストの「~/.ssh」配下に追加することで公開鍵暗号方式の認証ができます。
秘密鍵と公開鍵を生成(sshログインされる側)
# ssh-keygen
生成した公開鍵を「~/.ssh」配下へ保存(sshログインする側)
~/.ssh/xxxxxxxxx.pem
ssh公開鍵認証を使用したアクセスコマンド
$ ssh -i ~/.ssh/xxxxxxxxx.pem root@172.17.0.2
「ssh」コマンドオプション
sshコマンドについては上記で説明したことがほとんどですが、その他にもオプションを使用することがあります。 以下ではその他のオプションの結果となります。 [root@centos8 ~]# ssh -h unknown option -- h usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]
Linux「ssh」コマンドの使用例は以上となります。
エンジニアのオンライン学習
エンジニアにおすすめのオンライン教材比較 | |
ITエンジニアが自宅で学習ができるオンラインスクール比較 | |