前回、centOS7 のインストールが完了しました
今後ソフトウェアのインストールやメンテナンスなどが必要になってきます。
サーバー機本体で行ってもいいですが、別のマシンからリモート操作できるたほうが便利です。
慣れているWindowsマシンから、操作できるようにしたいと思います。
後々は外部からでもアクセスできるようにしたいと思います。
OpenSSHサーバの導入
SSH(Secure Shell)を利用するには、openssh-serverパッケージのインストールが必要ですが、今回インスールした環境ではインストール済みでした。
インストール状態を調べるには、 「rpm -qa」か「yum list installed」 で調べられます。
$ rpm -qa | grep ssh libssh2-1.4.3-12.el7_6.2.x86_64 openssh-server-7.4p1-16.el7.x86_64 openssh-clients-7.4p1-16.el7.x86_64 openssh-7.4p1-16.el7.x86_64 $ yum list installed | grep ssh libssh2.x86_64 1.4.3-12.el7_6.2 @updates openssh.x86_64 7.4p1-16.el7 @anaconda openssh-clients.x86_64 7.4p1-16.el7 @anaconda openssh-server.x86_64 7.4p1-16.el7 @anaconda
Tera TermでWindows からアクセス
ダウンロードのページへ移動すると、「exe版」と「zip版」がありました
「zip版」は、ダウンロード後適当な場所へ展開するだけで動作しました
インストール作業の必要がないので、試したい人などはこちらが便利です
Tera Term 起動
まずは、展開したフォルダ内の「ttermpro.exe」起動します。
Host: にアクセスしたいサーバのIPアドレス
Service: SSH
TCP port#: 22
「OK」で、ログイン画面へ変わります
「Connection refused」のエラーが出た場合は、sshdサービスが動作していない可能性があります。
サーバ機の画面から、「アプリケーション」⇒「システムツール」⇒「端末」で端末を起動して、「systemctl」コマンドを使用します。
「systemctl status sshd」で状況の確認ができます
緑色で、「 active ( running ) 」が表示されればsshdは動作しています
動作していない場合には、 「sudo systemctl start sshd」で動作させます
起動には、管理者権限の「sudo」が必要です。
$ systemctl status sshd ● sshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled;vendor preset:enabled) Active: active (running) ・ 省略 ・ $ sudo systemctl start sshd
sshdサーバが起動していれば、ログイン画面が表示されます
ここではとりあえず、Plain password でログインしますが、セキュリティ的に問題があるので、ログイン後公開鍵認証方式に設定し直すことにします。
「Use plain password to log in」を選択し、centOSインストール時に作成した管理者権限を持つ、ユーザ名とパスワードでログインします
ログインできると、「$ 」プロンプトでコマンド入力モードになります
公開鍵認証方法でセキュリティ向上
公開鍵認証は、公開鍵と秘密鍵のペアを作成し、秘密鍵をローカル(接続したい側)に保存しておき、公開鍵はサーバ(接続先)の決められたファイルに書き込んでおきます
この方式により、秘密鍵が保存されている端末で、鍵を作成する際に設定したパスフレーズを入力しないとログインできません。
秘密鍵ファイルを持っている事が必須なので、かなり安全度は向上できます
鍵ペアの作成
鍵ペアは「ssh-keygen」コマンドで作成します。
鍵の暗号方式には、DSAとRSAがあるようですが、RSAが主流なようです
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa): このファイル名でよければ、「Enter」。 次に接続でしようするパスフレーズを入力 Enter passphrase (empty for no passphrase): Enter same passphrase again: これで鍵ペアが生成されます Your identification has been saved in /home/hogehoge/.ssh/id_rsa. Your public key has been saved in /home/hogehoge/.ssh/id_rsa.pub. The key fingerprint is: SHA256:s6k671IoG2Z27A5BxFWsgAvhmwFTiRuhjLSArPgg5 hogehoge@server.hogehoge.com The key's randomart image is: +---[RSA 2048]----+ | o…o +.=. +. | | o. +o.+ .o= o | | .o.+.o .-. o.+o. | | o … = o.+-o | | + o . S E+-+ .+-.| | * . o * .-+- -+ - | |. . .= + + - . + | |o + … + - . + - * . | |. . o++. | +----[SHA256]-----+ これで、ホームディレクトリの「.ssh」ディレクトリの中に2個のファイルが 出来上がってあがっています。 $ ls ./.ssh id_rsa id_rsa.pub
公開鍵はサーバ。秘密鍵は端末へ。
「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵
公開鍵はサーバーのホームディレクトリの「.ssh/authorized_keys」に追記します
$ cd ~/.ssh <----- ユーザーのホームディレクトリの .ssh に移動 $ cat id_rsa.pub >> authorized_keys <--- 公開鍵をauthorized_keysに追加
秘密鍵「id_rsa」はローカル(Windowsマシン)に保存します
USBなどのコピーして持って行ったほうが安全だと思いますが、 自宅内のローカルネット上であれば、上記でインストールした「Tera Term」で持っていく事もできます。
ログインしたら、「File」⇒「SSH SCP…」でダイアログが表示されます
Tera Term からサーバにログインしている状態で、「File」⇒「SSH SCP..」でダイアログが表示されます
上下に分かれていますが、上側がWindows側からサーバーへコピー
下側がサーバー側からWindowsへコピーになります
今回は下側を使用します。「From」に秘密鍵ファイル名「.ssh/id_rsa」
「To」に保存した適当なフォルダを指定し、「Receive」でコピーされます
RSA鍵で再ログイン
Tera Term でログインしている状態であれば、一旦終了し再起動します
今度は「Use RSA/…. key to log in」を選択し、「Private key file:」に保存した秘密鍵「id_rsa」を設定します
「passphrase」は、ぺア鍵を生成する時に入力した、パスフレーズです
これで、公開鍵認証方法でアクセスできるようになりました。
sshでの通信は暗号化されているため、インターネット内を通過しても比較的安全です。
さらに、公開鍵認証方式で鍵によるアクセスが可能になりましたが、今の状態では従来のパスワードによる認証もできてしまいます。
また、rootユーザーのログインも許可された状態になっています
次回は、もう少しセキュリティ向上のための設定を行いたいと思います
コメント