SSHサーバーについて
SSHはSecure Shellの略でネットワークに接続された機器を安全に遠隔操作できるようにする為のプロトコルです。
実行したコマンドやコマンド結果は暗号化されているためセキュリティーは高いのです。
SSHサーバーはこの通信プロトコルであるSSHを提供するためのプログラムで、これをサーバーにインストールしてルータのポートを開放すれば、外部のNWからもサーバーにアクセスすることができます。
CentOS8では最小インストールでもOpenSSHサーバーがインストールが標準でインストールされており、SSHのサービスも常時起動状態のため、すぐに利用することが可能です。
ルータのポート開放でHTTP通信を受け入れる
本手順ではSSH接続で利用するポート番号を変更する手順で解説しています。
コンフィグで変更したポート番号と同一の番号を、サーバー側NWのルータにてポート開放の設定を行い、外部からの通信がサーバーに届くようにします。
本手順の例で変更するポート番号は「1919」になります。
ポートの設定方法はルータによって違いますが、概ね下記のような感じです。
プロトコル | TCP / UDP |
開始ポート番号 | 1919 |
終了ポート番号 | 1919 |
サーバーのローカルアドレス | 192,168.x.x |
▼通信イメージ
▼ルータの設定イメージ
SSHのコンフィグの設定
SSHサーバーの設定はデフォルトでrootログインができてしまいます。
rootは最高権限のアカウント且つ、SSHは基本的に出先などの外部NWから接続する事があるので、rootでSSH接続ができてしまうのはセキュリティー的にはよくないのです。
rootではログインできないように設定を行います。
またSSHのデフォルトポートである22番はハッキング等で狙われやすいため、ポート番号を変えておくとセキュリティー的には高くなるので変更しておきます。
▼SSHの設定ファイルを変更
command # vi /etc/ssh/sshd_config
sshd_config
▼ポート番号変更
任意のポート番号に変更。
この設定だけでも不正アクセスはほとんど無くなります。
Port 22
↓
Port 1919
▼rootログイン禁止
この行の「yes」を「no」に変更。
PermitRootLogin yes
↓
PermitRootLogin no
▼接続確認の設定
デフォルトだと応答確認はなしのため突然切断する場合がある。
下記の例だと30秒毎に確認
ClientAliveInterval 30
▼接続確認回数
この場合だと30秒×60回=1800秒(30分)応答がなければ切断される
ClientAliveCountMax 60
▼設定ファイル反映のためSSHを再起動
command # systemctl restart sshd
ココに注意
sshdを再起動する際にすでにTeraTerm等のターミナルツールでログインしている場合は、そのウィンドは閉じないでおきましょう。
SSH接続での接続制限は接続直後の挙動のため、設定変更のミスにより新規ログインができなくなった場合でも、一枚目のウィンドを閉じなければすぐに設定を戻して復旧させることが可能です。
ターミナルツールでSSH接続
▼ターミナルアプリをインストール
Windowsを例で説明します。
今回は下記のTeraTerm(テラターム)を利用します。
下記からパッケージをDLしてインストールをしてください。
https://ja.osdn.net/projects/ttssh2/
▼TeraTermを起動してログイン情報を入力
ホスト | 192.168.x.x |
TCPポート | 1919 |
サービス | SSH |
ログインユーザー | root以外の一般ユーザーアカウント |
パスフレーズ | ログインユーザーのLinuxのログインパスワード |
初回目接続時のインフォメーション
このホストをknown hostsリストに追加する(A)」のチェックを確認して「続行」ボタンを押下。
初回アクセス時にサーバー側から応答されるセキュリティーのカギ情報をTeraTermに保存しておくという意味です。
保存すれば2回目以降は聞かれなくなります。
ターミナルツールのメリット
- 複数同時にウィンドが開ける!
- コマンドの結果等が日本語化される!
- WEBに掲載されたコマンド等をコピペが可能!
- TeraTerm上に表示された結果をコピーしてメモ帳とかに貼れる!
さらに詳しく
新しく新規ウィンドを開く際に、TeraTermをアクティブウィンドの状態で「Alt+n」で開くと、簡単に接続できるようになります。
SSHセキュリティー設定の確認
- rootでログインが出来ないことを確認
- ポート22では接続が出来ないことを確認
SCPコマンドでssh接続でファイルをコピー
▼接続先のサーバーからファイルをコピー
接続先にある「hoge」ディレクトリを、scpコマンド実行時に居るディレクトリ配下に取得。
-r = ディレクトリ
command # scp -r user@example.com:/home/pugiemonn/hoge
▼転送先のサーバーにファイルを転送
Desktopディレクトリを接続先のサーバーの「user」ディレクトリ配下に転送
-r = ディレクトリ
command # scp -r ~/Desktop user@example.com:/home/user/