[SSH] 公開鍵認証でSSH接続(TeraTerm利用)

CentOS7で公開鍵認証を使ってSSH接続する方法です。
ルートではログインできないようにして、ユーザーで公開鍵認証するようにします。

ルートのパスワードの設定

VPSなどのサービスを利用しているとき、rootのパスワードが設定されていないことがあるので、まず、rootのパスワードを設定します。
[環境]
CeontOS7x
Windows10 TeraTerm
KAGOYA VPS

KAGOYA VPSの場合、ルートのパスワードが無しで鍵を使ってログインになっています。

ユーザーの作成

rootでの公開鍵認証はセキュリティ上良くないので、ユーザーを作成してユーザーでログインするようにします。

ユーザーを作成し、パスワードを設定します。

TeraTermにユーザーでログインします。
ここは鍵を使ってのログインではなく、平文(プレインパスワード)を使用してログインにします。

SSHポートの変更

vi /etc/ssh/sshd_configで port xxxxのようにSSHのポート番号を変更しておく。
[MEMO]KAGOYA VPSはCentOS7でfirewalldではなく、iptablesを利用している。 sshd_configを変更すると接続できなくなるので注意。

「SSHの設定」

「Iptablesの設定」

[MEMO]
利用しているVPSでは初期状態でrootに公開鍵が設定されていました。rootのパスワードは無し。ユーザーを作成し、rootにパスワードを付与してから下記の作業に入りました。

TeraTermで鍵生成

ROOTで入れるようにするのは危険なので、ユーザーでログインしての作業になります。

鍵の生成

設定でSSH鍵生成を選択します。
2020-03-07_22h32_35

2020-03-07_22h32_44
鍵の種類はRSAにして、右側の生成ボタンを押します。
押すと、鍵が生成されます。

鍵にパスワードを入れます。
2020-03-07_22h35_06
パスワードを入力したら、
「公開鍵の保存」
「秘密鍵の保存」
を押して、ローカルPCに保存します。
今回はデスクトップに保存することにします。

サーバーに鍵のアップロード

TeraTermからサーバーにSSHでファイルをアップします。
ファイルの「SSH_SCP」を選択します。
2020-03-07_22h36_12

デスクトップにある「id_rsa.pub」を選択します。
宛先は「~/」にします。
2020-03-07_22h38_06

入力したら「Send」ボタンを押します。

公開鍵の設置

TeraTermのSCPでアップロードされたファイルを移動してサーバーに設置します。

まず、ユーザーのディレクトリを確認。
/home/user名 のディレクトリで作業します。

.sshフォルダ(ディレクトリ)を作ります。

パーミションを700に変更します。

id_rsa.pubファイルをリネームして、移動します。

ここまで終わったら一度TeraTermの接続を切ります。

TCPポートを、変更したSSHポート「XXXX」にして接続します。
2020-03-07_23h10_39

今度はプレインテキストログインではなく、公開鍵のログインにします。
2020-03-07_23h11_13
RSA鍵を使うを選択し、デスクトップに保存した「id_rsa」ファイルを選びます。

これで「OK」を押すとログイン出来ます。
2020-03-07_23h12_14

公開鍵以外でログイン出来ないようにする

vi /etc/ssh/sshd_config で以下の項目を設定します。

1行目:パスワードが設定されていないアカウントの利用禁止
2行目:パスワード認証方式を無効にする(plain password禁止)

設定が終わったらSSHを再起動します。

これで平文(plain)で接続すると接続できなくなります。

ルートでログイン出来ないようにする

vi /etc/ssh/sshd_config で以下の項目を設定します。

ターミナルからログアウトして、再度ログインしようとしたとき、変更したSSHのポートでログインできないときがあります。これはIptablesを再起動がされていないときですので、サーバーを再起動すればログインできるようになります。



Author: webmaster