LinuxからSSH接続する方法|基本操作から実務で役立つ接続方法まで解説

LinuxからSSH接続

Linux環境でSSH接続を行うための基本操作を理解しよう

Linuxサーバの管理において最も利用される操作の一つがSSH接続です。

現在ではオンプレミス環境だけでなく、AWSやAzureなどのクラウド環境でもSSHによるサーバ管理が標準となっています。

Linuxを学習し始めた方は、VirtualBox上のAlmaLinux同士を接続したり、自宅PCからサーバへ接続したりする機会も多いでしょう。

しかし、単純な接続方法は知っていても、接続時に何が行われているのか、どのようなオプションがあるのかまで理解している方は意外と少なくありません。

本記事ではLinuxからSSH接続する方法について、基本操作から実務で利用する設定まで詳しく解説します。

SSH接続とは

SSH(Secure Shell)は、ネットワーク経由で別のコンピュータへ安全に接続するためのプロトコルです。

通信内容は暗号化されるため、ユーザー名やパスワード、実行コマンドなどが第三者に盗み見られるリスクを大幅に低減できます。

現在のLinux環境ではOpenSSHが標準的に利用されています。

SSHクライアントが利用できるか確認する

まずはSSHクライアントがインストールされていることを確認します。

ssh -V

実行例です。
OpenSSH_9.3p1

バージョン情報が表示されれば利用可能です。

AlmaLinuxやRocky Linuxでは通常インストール済みです。

最も基本的なSSH接続

SSH接続の基本構文は以下の通りです。

ssh ユーザー名@接続先

例えば以下のようになります。

$ ssh student@192.168.60.101

接続後、パスワードを求められます。

student@192.168.60.101's password:

認証に成功するとログインできます。

ホスト名を利用した接続

DNSやhostsファイルで名前解決できる場合はホスト名を利用できます。

$ ssh student@mail1

実務ではIPアドレスよりもホスト名を利用するケースが多くなります。

初回接続時のメッセージ

初めて接続するサーバでは以下のような確認画面が表示されます。

The authenticity of host can't be established.
ED25519 key fingerprint is ...
Are you sure you want to continue connecting (yes/no)?

これはサーバの公開鍵を確認している状態です。

問題なければ「yes」を入力します。

登録情報は以下のファイルへ保存されます。

~/.ssh/known_hosts

次回以降は自動的に確認が行われます。

別ポートで接続する

SSHは通常22番ポートを利用します。

しかし環境によっては変更されている場合があります。

その場合は-pオプションを利用します。

$ ssh -p 2222 student@192.168.60.101

実務でもセキュリティポリシーにより変更されていることがあります。

公開鍵認証で接続する

現在の企業環境では公開鍵認証が一般的です。

秘密鍵を指定して接続する場合は-iオプションを利用します。

ssh -i ~/.ssh/id_ed25519 student@192.168.60.101$ 

秘密鍵が正しく登録されていればパスワード入力なしでログインできます。

公開鍵の作成方法

公開鍵認証を利用する場合は鍵ペアを作成します。

$ ssh-keygen -t ed25519

生成されるファイルは以下です。

~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub

秘密鍵は自分で保管し、公開鍵をサーバへ登録します。

公開鍵をサーバへ登録する

OpenSSHには便利なコマンドがあります。

$ ssh-copy-id student@192.168.60.101

公開鍵が自動的に以下へ登録されます。

~/.ssh/authorized_keys

学習環境でも実務でも非常によく利用されます。

SSH設定ファイルを利用する

複数サーバへ接続する場合は設定ファイルを利用すると便利です。

設定ファイルは以下です。

~/.ssh/config

例です。
Host dns
    HostName 192.168.60.101
    User student

Host mail
    HostName 192.168.60.102
    User student

設定後は以下だけで接続できます。

$ ssh dns

実務では必須といってよいほど便利な機能です。

リモートコマンドを実行する

SSHはログインだけでなくコマンド実行にも利用できます。

$ ssh student@192.168.60.101 "hostname"

実行結果だけが表示されます。
server01

運用スクリプトや監視処理で利用されます。

接続状況を確認する

SSH接続に問題がある場合は-vオプションを利用します。

$ ssh -v student@192.168.60.101

さらに詳細を表示する場合は以下です。

ssh -vv
ssh -vvv

認証エラーや鍵の問題を調査する際に役立ちます。

よくある接続エラー

Connection refused

ssh: connect to host 192.168.60.101 port 22: Connection refused

主な原因は以下です。

  • sshdが停止している
  • ポート番号が違う
  • firewalldで拒否されている

Permission denied

Permission denied (publickey,password)

主な原因です。

  • パスワード間違い
  • 公開鍵未登録
  • authorized_keysの権限不備

Host key verification failed

known_hostsに登録された情報と実際のサーバ情報が異なる場合に発生します。

サーバ再構築時などによく見られます。

SSH接続前に確認したい項目

接続できない場合は以下を確認しましょう。

  • サーバが起動しているか
  • IPアドレスが正しいか
  • 22番ポートが開いているか
  • sshdが起動しているか
  • firewalldが許可しているか
  • SELinux設定に問題がないか

Linuxサーバ構築演習でも頻繁に確認するポイントです。

実務でよく利用するSSHコマンド

ssh server01
ssh -p 2222 server01
ssh -i ~/.ssh/id_ed25519 server01
ssh server01 "df -h"
ssh server01 "systemctl status httpd"
ssh -v server01

障害対応や保守運用では毎日のように利用されます。

まとめ

LinuxからのSSH接続はサーバ管理における基本中の基本です。

単純なログインだけでなく、公開鍵認証や設定ファイルの活用、リモートコマンド実行など多くの便利な機能があります。

まずは基本的なsshコマンドを使いこなし、その後公開鍵認証やSSH設定ファイルを活用することで効率的なサーバ管理を実現できるようになります。

実務では毎日利用する技術であるため、確実に身につけておきましょう。