【ssh】Linuxコマンド_高いセキュリティでリモートホストへログインする

Linuxでは通信を暗号化し、コンピュータ、ホストへのログインを安全に行える「SSH」があります。




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「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エンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!