■前提条件
さくらVPSを利用してcentOS7環境でサーバ構築の勉強中です。
「ネコでもわかるさくらVPS講座」で学習中に詰まったので同じ境遇の方向けに書いてます。
ネコでもわかる!さくらのVPS講座
■SSHログインできなくなった経緯
SSHログインができなくなった経緯と解決法を以下記載します。
■firewalldを有効にしてSSHログインができなくなる
firewalldを有効化するため下のコマンドを実行しました。
# firewall-cmd --add-service=http --zone=public --permanent
その後、ファイアウォールが有効化されたことで強制ログアウトとなり何度かSSHログインを試みるも、、、
ssh: connect to host 〇〇〇.〇〇〇.〇〇〇.〇〇〇 port 〇〇: Connection refused
上のエラーが出てサーバーにログインできず...
様々な記事を参照すると、デフォルトの設定だとfirewalldでは22番ポートの通信のみ許可しているようです(筆者はSSHサーバの初期設定を22番ポートから変更していた)。これが原因のようですね。
■対応方法
さくらVPSのVNCコンソールを開き、rootユーザでログインしてください。
firewalldを有効します。
# systemctl enable firewalld
下記コマンドでポート番号を変更します。
# firewall-cmd --add-port=〇〇/tcp --zone=public --permanent
また、fierwalldの設定を有効化し、設定内容を確認するとポートが変更されているのがわかります。
# firewall-cmd --reload
# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 〇〇/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
■OS再インストールを行ったことでSSHログイン時にWARNING!が出るようになる
筆者は早まりがちなため、OS再インストールをしょっちゅうしてしまいます。。。再インストール時、以下のようなWARNING!が出てSSHログインができなくなりました。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:04+kuW8/mIxvvD8+q0lXSL/tOs27tLPEDcXzEzTSuiM.
Please contact your system administrator.
Add correct host key in /Users/ユーザ名/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ユーザ名/.ssh/known_hosts:2
Host key for 133.167.78.37 has changed and you have requested strict checking.
Host key verification failed.
すごい剣幕で怒られたのでびっくりしましたが、これはなんとなくknown_hostsファイルに原因がありそうと推測できますね、、
SSHで接続する際には接続先毎にローカルにRSA公開鍵のフィンガープリントなるものが保管されるため、SSH接続時には、以前保存したこの情報と、いままさに接続しようとしているサーバの情報が一致しているかを確認しているようです。そうすることで、ユーザ(クライアント)が別のサーバへ接続してしまうことを防いでいるとのことでした。そのため、IPアドレスの振り直しやOS再インストールなどでホスト鍵が変わってしまった場合、エラーが出ます。
対応方法
以下コマンドでknown_hostsファイルにあるIPアドレスの行を削除します。
#ssh-keygen -R [ホストIPアドレス]
以上SSHログインできなくなった時の対処法2選でした!
最後に引用記事をまとめておきますのでご参考までに!!
筆者が初学者のため表現や知識の誤り等ございましたらコメント頂けますと幸いです!
引用した記事
・さくらのVPS(CentOS7)でnginxサーバを建てる
・AWS上でssh接続時の[WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!]エラー
・第23回 実行してはいけないLinuxコマンド-Linuxサーバにおいてsshで締め出される恐怖 - その3