Linux基礎講座:SSH(外部サーバへのアクセス)
Linuxマシンに外部からアクセスするためにSSHを使ってみましょう。
SSH(Secure Shell)とは、外部からシェルを動かすための仕組みです。 アクセスされる側がSSHサーバ、アクセスする側がSSHクライアントを動作させることによって、マシンに接続されたキーボードとディスプレイを見ることなくCUI操作をすることができます。
当ポストではすでにサーバ側の設定は済んでいるものとして、どのようにクライアントを使えば良いかを説明します。 サーバにアクセスするにはパスワードなどの情報を事前に知っておく必要がありますが、それらは自分で用意してください。 クライアントとなるPCはLinuxの場合とWindowsの場合について説明します。
認証の種類
SSHで用いられる認証方法は主に以下の2つです。
- ユーザ名・パスワード認証
- ユーザ名・公開鍵認証
パスワード認証では、ユーザ名とそのパスワードが分かっていればOKです。WEBサイトにログインするのと同じ感覚で利用できます。
一方公開鍵認証ではログインにパスワードは使わず、代わりに秘密鍵を使います。サーバ管理者から秘密鍵ファイルを渡されるはずなので、クライアントPC内に紛失しないように保管しましょう。 秘密鍵には念のためにパスフレーズが設定されることが多いです。パスフレーズはサーバにログインするパスワードとは違いますが、こちらも忘れずに覚えておきましょう。ログインの際に使います。
Linuxクライアントの場合
パスワード認証
UbuntuやFedoraなどの多くのLinuxディストリビュションにはSSHクライアントが内蔵されています。 例えば、www.hoge.com というサーバにユーザ名fugaで接続するには、以下のようにコマンドラインに入力します。
$ ssh fuga@www.hoge.com
すると、パスワードを聞かれるはずですのでパスワードを入力します。 なお、始めて接続するサーバの場合、本当に接続するかどうか確認されることがあります。”yes”と入力すれば良いでしょう。
公開鍵認証
公開鍵がある場合には、公開鍵ファイルを指定します。以下は、ホームフォルダ下の.sshディレクトリに秘密鍵”key”が保管されている場合の例です。
$ ssh fuga@www.hoge.com -i ~/.ssh/key
いくつかの重要なオプション
サーバによってはSSHサーバのポート番号が変更されている場合があります。デフォルトは22番ですが、それ以外の場合には明記する必要があります。
$ ssh fuga@www.hoge.com -p 1022
X転送という機能を用いる場合、オプションを追加します。X転送ではGUIを持つエディタ等はGUIで起動することができます。
$ ssh fuga@www.hoge.com -X
セキュリティレベルを下げたX転送のため、Yオプションがあります。信頼できるネットワーク内ではこちらを用いた方が動作が速いでしょう。
$ ssh fuga@www.hoge.com -Y
オプションではありませんが、クライアントのユーザ名とサーバのユーザ名が同じ場合、ユーザー名は省略できます。
$ ssh www.hoge.com
Windowsクライアント
Windowsには2016年3月現在ではSSHクライアント機能がありませんので別途ソフトウェアをインストールする必要があります。以下が有名です。
- putty
- TeraTerm
くれぐれもソフトウェアバグには注意し、アップデートの有無をまめに確認しましょう。 私の場合にはTeraTermを使うので、そちらで説明します。
パスワード認証
TeraTermを起動すると、以下のような画面が表示されます。
ここでサーバアドレスを入力します。ポート番号は必要であれば変更します。 OKボタンを押すと、次の画面に遷移するはずです。
ここでユーザ名とパスワードを指定します。このとき「プレインパスワードを使う」というラジオボタンを選択しておきましょう。
公開鍵認証
公開鍵認証では、途中まで操作は一緒ですが、「RSA…鍵を使う」というラジオボタンを選択して、さらに秘密鍵を指定しておく必要があります。秘密鍵の指定は「秘密鍵(K):」というボタンを押して行いましょう。
SSH利用上の注意
SSHを利用する際はセキュリティに注意しましょう。通信は暗号化されますが、盗聴の危険は0ではありません。 出所の分からないWifi経由で使わないなどの注意が必要です。
さらに、パスワード認証よりは公開鍵認証の利用をお勧めします。鍵長を長くすればそれだけ安心です。 サーバという形式をとっているマシンは、何か問題が起きると多くの人に迷惑をかけてしまうことが多いかと思います。くれぐれも注意深く使いましょう。