SSH
|
Ubuntu server 14.04SSHubuntu server での SSH の設定方法について説明ます. 目次インストールと設定インストールubuntu server をインストールするときに,「インストールするソフトウェアーの選択」の画面で,OpenSSH serverをチェックすれば,インストールされます.後からインストールする場合は,コマンド「# apt-get install openssh-server」を使います. 起動・停止,その他openssh-server をインストールすると自動的に,ssh のデーモンは起動します.停止,他の操作は,スーパーユーザーで,以下のコマンドを使います(sudo をつける).デーモンの管理は,「サービス(デーモン)の管理」に記述があります.
設定sshを使ってリモートホストに接続する場合,パスワードを使うよりも鍵交換方式の認証の方が安全と言われています.このような理由から,ここのSSHサーバーではパスワード認証を禁止し,鍵交換方式を使うことにします.そのためには,設定ファイル「/etc/ssh/sshd_config」を以下のように変更します. PasswordAuthentication no パスワードログイン禁止、秘密鍵でログインさせる PermitRootLogin no rootログインを禁止 PermitEmptyPassword no パスワード無しのログインを禁止 設定が完了したら,コマンド「/etc/init.d/ssh restart」で再起動します. 鍵の生成と設定鍵交換方式の認証では,秘密鍵と公開鍵が必要です.これらの鍵の生成と設定方法を示します. 鍵の生成リモートホストの ubuntu server では,コマンド「ssh-keygen」で,秘密鍵と公開鍵の作成が可能です.具体的には,以下の通り. $ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/yamamoto/.ssh/id_rsa):[Enter]キーを押す Created directory '/home/yamamoto/.ssh'. Enter passphrase (empty for no passphrase):パスワードを入れる Enter same passphrase again:再度パスワードを入れる Your identification has been saved in /home/yamamoto/.ssh/id_rsa. Your public key has been saved in /home/yamamoto/.ssh/id_rsa.pub. The key fingerprint is: 6b:a7:34:32:14:0c:d5:42:28:03:1c:30:ab:2a:4f:bc yamamoto@www The key's randomart image is: +--[ RSA 2048]----+ | O=o | |**o | |*.o. | |.+ . | | o . S | | . .. o .. | | E o oo . | | . .o | | .. | +-----------------+ 以上で,秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成されました. 次に鍵が作成されたフォルダーに移動して,そこに格納されているファイルの内容を確認します.もし,「authorized_keys」というファイルがあれば,作成された公開鍵をそのファイルに追記します. $ cat id_rsa.pub >> authorized_keys
「authorized_keys」が無い場合は,以下のように名前を変更します. $ mv id_rsa.pub authorized_keys
最後にパーミッションを変更します. $ chmod 600 authorized_keys
秘密鍵(id_rsa)はローカルホストで使います.その設定方法については,以降,windows と Linux に分けて説明します. Windows での秘密鍵の設定Windowsからリモートホスト(ubuntu server)にSSHで接続するためのクライアントソフトウェアーとして,私は「Puttyごった煮版」を使っています.秘密鍵の設定には,PuTTYgenを使います.ただし,「Puttyごった煮版」に付いてくる PuTTYgenは,OpenSSH が作成した秘密鍵が読めません.PuTTYgen Error「秘密鍵を読み込めませんでした。(ciphers other than DES-EDE3-CBC not supported)」とエラーが出ます. この問題の対処方法については,「Topic "Couldn't load private key"」に書かれています.そこに書かれているとおり,puttygen.exeをダウンロードします. ダウンロード後は,以下のようにして秘密鍵のファイル(*.ppk)をつくります.
以上で,PuTTYで使う秘密鍵のファイルができました.このファイルを使って実際の接続については,このページの「リモートホストへの接続→PuTTYを使う方法→windows」に記述しています.これを参考に設定を行い,SSH接続してください. Linux での秘密鍵の設定Linuxからリモートホスト(ubuntu server)にSSHで接続する場合でも,PuTTYを使っています.Windows同様,OpenSSHが作成した秘密鍵ファイル(id_rsa)をPuTTYが読み込むファイル(*.ppk)に変換する必要があります.変換には,puttygenを使います.ただし,WindowsのようなGUIはなく,コマンドを使います.具体的には,以下のようにして秘密鍵のファイル(*.ppk)をつくります.
以上で,PuTTYで使う秘密鍵のファイルができました.このファイルを使って実際の接続については,このページの「リモートホストへの接続→PuTTYを使う方法→Linux」に記述しています.これを参考に設定を行い,SSH接続してください. リモートホストへの接続SSHコマンドを使う方法SSHを使ったリモートホストの接続は,簡単です.普通は,Linux のターミナル,あるいは Windows のコマンドプロンプトで,コマンド「ssh アカウント名@ホスト名 -i 秘密鍵ファイル(id_rsa)の場所」でOKです.すると,鍵を作成したときのパスワードが聞かれますので,タイプします.以上で,起動完了です. 理由は分かりませんが,いつの頃か「ssh アカウント名@ホスト名 -i 秘密鍵ファイル(id_rsa)の場所/id_rsa」としないと入れませんでした. PuTTYを使う方法SSHコマンドを使った場合,いっぱいターミナルを開くと,ローカルなのかリモートなのか分からなくなります.そこで,私は PuTTY を使っています.図3のように,表示を変えると人目でローカルとリモートの区別できます.
windowsリモートホストへの接続には,「PuTTYごった煮版」を使っています.それを使った鍵交換方式の接続方法を示します.PuTTYを起動すると,カテゴリー別に様々な設定ができます.大事なところの設定については,私は以下のようにしています.
設定が済んだら,カテゴリの「セッション」に移動して,「セッション一覧(E)」下に適当なセッション名を入れて,ボタン[保存]をクリックします.すると,一覧の中にそのセッション名が現れます.今後は,それを選択して,ボタン[読込(L)]をクリックすることにより,設定が反映されます. 設定が反映されたら,[開く(O)]ボタンをクリックします(図4).すると,ターミナルが開き「Passphrase for key…」とパスワードの入力を求められます.鍵を生成したときのパスワードを入れます.するとターミナルが立ち上がります.
LinuxクライアントにPuTTYを使うかぎり,設定は Windows と同じです.PuTTYの起動は,ターミナルでコマンド「putty」をタイプするか,ubuntuの場合メニューのアプリケーション→インターネット→PuTTY SSH client を選択します.最初の起動では,接続のための設定を行います.重要なところの設定を以下に示します.
「Private key file for authentication」の設定では,秘密鍵ファイル(ubuntu_server.ppk)を絶対パスで直接指定します.ボタン[Browse…]をクリックしても,このファイルを見ることができません.なぜならば,このファイルは「.ssh」という隠しディレクトリーに格納したからです. 設定が済んだら,カテゴリの「Session」に移動して,「Saved Sessions」下に適当なセッション名を入れて,ボタン[Save]をクリックします.すると,一覧の中にそのセッション名が現れます.今後は,それを選択して,ボタン[Load]をクリックすることにより,設定が反映されます. 設定が反映されたら,[Open]ボタンをクリックします.すると,ターミナルが開き「Passphrase for key…」とパスワードの入力を求められます.鍵を生成したときのパスワードを入れます.するとターミナルが立ち上がります. ファイル操作コマンド「scp(Secure Copy)」コマンド「scp」を用いると,ローカルとリモートホスト間でファイルやディレクトリーのコピーができます.使い方は,コマンド「cp」とほとんど同じです.リモートホストのファイルやディレクトリーの指定方法は,次のようにします.
GUIクライアントアプリケーションwindowsであれば「WinSCP」,Linuxであれば「gFTP」が便利です. ルーターの設定外部からアクセスするためには,自宅のルーターを設定する必要があります.私は,NTT PR-S300NEを使っています.その設定は,「詳細設定→静的IPマスカレード設定」で行います. その他鍵が変わった場合私の場合,ubuntu server を数回インストールし直したので,サーバーのホスト鍵が変わってしまいました.以下のようなメッセージが現れました. $ ssh yamamoto@192.168.1.81
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5d:e9:26:a5:a5:f4:16:ef:7b:05:5e:e6:63:62:59:b4.
Please contact your system administrator.
Add correct host key in /home/yamamoto/.ssh/known_hosts to get rid of this message.
Offending key in /home/yamamoto/.ssh/known_hosts:5
RSA host key for 192.168.1.81 has changed and you have requested strict checking.
Host key verification failed.
次のようなことが書かれています. 警告:リモートホストの認証が変わりました! このメッセージから known_hosts に記載された5番目のホストに問題があることが分かります.認証の過程で鍵が合わなかったのです.このファイルの5行目を削除して,再度,初回の接続からやり直すこともできます.これは手動で行うので間違いが発生することもあるので,次のようにコマンド「ssh-keygen」を使うことを勧めます. $ ssh-keygen -R 192.168.1.81
/home/yamamoto/.ssh/known_hosts updated.
Original contents retained as /home/yamamoto/.ssh/known_hosts.old
こうすることにより,192.168.1.81のホスト公開鍵の情報が削除されます. そうして,以下のように初回接続をもう一度やり直します. $ ssh yamamoto@192.168.1.81 The authenticity of host '192.168.1.81 (192.168.1.81)' can't be established. RSA key fingerprint is 5d:e9:26:a5:a5:f4:16:ef:7b:05:5e:e6:63:62:59:b4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.81' (RSA) to the list of known hosts. yamamoto@192.168.1.81's password: xxxxxx パスワードを入れる Welcome to Ubuntu 11.10 (GNU/Linux 3.0.0-12-server x86_64) * Documentation: https://help.ubuntu.com/11.10/serverguide/C System information as of Mon Apr 30 15:34:03 JST 2012 System load: 0.06 Processes: 83 Usage of /: 1.1% of 105.87GB Users logged in: 0 Memory usage: 1% IP address for eth0: 192.168.1.81 Swap usage: 0% Graph this data and manage this system at https://landscape.canonical.com/ New release '12.04 LTS' available. Run 'do-release-upgrade' to upgrade to it. Last login: Mon Apr 30 15:33:10 2012 from 192.168.1.61 ページ作成情報参考資料
更新履歴
|