ssh

2015 年 6 月 9日 改訂

SSH (Secure Shell) は,安全にリモートログイン,ファイルコピーできるネットワーク・ソフトウェアです.これを用いるには,今使っている Mac (ローカル) とサーバ (ホスト) の両方がインターネットにつながっている必要があります.

自分の Mac をサーバーとして使う際に使います.例えば,自宅から研究室の Mac にターミナルを使って入って,必要なファイルをコピーしたり,解析を走らせたりできます.

Super computer を使うには必須のテクニックです.


設定方法
Mac では「システム環境設定 > 共有」にある リモートログインをチェックにするだけで,SSH サーバーを立ち上げることができます.このとき,システムを再起動する必要はありません.



SSH サーバにログインする

ホスト名とアドレスは,上記リモートログインをチェックしたときに現れます.自分が今使っている Mac 自身に入ることもできるので,試してみるのも良いでしょう.

ssh JunINOUE@1XX.2.3.4

最初に接続したときはいろいろ聞かれますが,リターンを押していれば入れるはずです.もちろん,パスワードを聞かれるので,ホストの Mac で設定したパスワードを答えてください.「exit」でログアウトできます.
注意: 大学の Mac から,家のWifi につながっている Mac にログインしようとしたら,入れませんでした.port の問題でしょうか.理由はわからないです.


SSH サーバにファイルを転送する

authorized_keys というファイルを,「JunINOUE@1XX.2.3.4」というホストにある ~/.ssh ディレクトリにコピーするには,以下のコマンドです.

[JunINOUE:.ssh]$ scp authorized_keys JunINOUE@1XX.2.3.4:.ssh

ディレクトリであれば,-r をつけます.ここではホスト側のディレクトリを指定していないので,「~」で表されるホームディレクトリにコピーされます.

[JunINOUE:~]$ scp -r Rdir JunINOUE@1XX.2.3.4:



公開鍵暗号方式による接続

ログインするたびにパスワードを入れるのは面倒です.ここで説明する公開鍵暗号方式による認証を行えば,パスワードを省略することができます.

今使っているMac (ローカル)-> SSH サーバ (ホスト)

という関係で公開鍵を設定します.


ローカル側の設定
まず「cd 」あるいは「cd ~」によってホームディレクトリに移動し,

mkdir .ssh

によって,ホームディレクトリに「.ssh」ディレクトリを作成します.名前の最初に「.」がついているファイルは「ls -a」によって確認することができます.その後,

chmod 700 .ssh

によって .ssh ディレクトリのパーミッションを変更し,自分だけが読み書きできるようにします.

ssh-keygen

によって公開鍵と秘密鍵を作成します.いろいろ聞かれますが,リターンで良いです.

id_rsa.pub に公開鍵が作成されているので,ここに書かれているパブリックキーをコピーします.
.ssh ディレクトリに入って,

cat id_rsa.pub

として全文コピーしてください.


ホスト側の設定
ホストのホームディレクトリにも,.ssh ディレクトリを作成してください.その後,authorized_keys という名前のファイルを作成し,上記で作成したローカルの公開鍵をコピーします.ディレクトリの構成は,

[Napoli:.ssh]$ ls
authorized_keys

のようになっているはずです.authorized_keys ファイルは,

[Napoli:.ssh]$ cat authorized_keys
ssh-rsa XXXXXXXXXXXXXXXXXXXXBAAABAQXXXXXXX
s2kvPT0d46eyR4rGbm42fT3fUwPxDH8XXXXXXXXXXXXXXX
....
XXXX JunINOUE@inoue-no-MacBook-Air-2.local

のようになっているはずです.

その後,chmod でアクセス権を以下のように変更してください.

[T7600:.ssh]$ ls -lh
合計 16K
-rw-rw-r--. 1 Jun Jun 420 6月 10 17:23 2015 authorized_keys
-rw-------. 1 Jun Jun 1.7K 6月 10 10:05 2015 id_rsa
-rw-r--r--. 1 Jun Jun 391 6月 10 10:05 2015 id_rsa.pub
-rw-r--r--. 1 Jun Jun 803 6月 10 15:32 2015 known_hosts

[T7600:.ssh]$ chmod g-w authorized_keys

[T7600:.ssh]$ ls -l
合計 16
-rw-r--r--. 1 Jun Jun 420 6月 10 17:23 2015 authorized_keys
-rw-------. 1 Jun Jun 1675 6月 10 10:05 2015 id_rsa
-rw-r--r--. 1 Jun Jun 391 6月 10 10:05 2015 id_rsa.pub
-rw-r--r--. 1 Jun Jun 803 6月 10 15:32 2015 known_hosts


authorized/keys アクセス制限を変更

ls -lhart で .ssh に含まれるファイルのアクセス制限を確認します.

[Jun@localhost ~]$ ls -lhart .ssh
total 20K
-rw-------. 1 Jun Jun 1.7K Dec 2 19:08 id_rsa
-rw-r--r--. 1 Jun Jun 407 Dec 2 19:08 id_rsa.pub
-rw-rw-r--. 1 Jun Jun 420 Dec 2 19:08 authorized_keys
drwx------. 2 Jun Jun 4.0K Dec 2 19:08 .
drwx------. 25 Jun Jun 4.0K Dec 2 19:09 ..

chmod で authorized_keys の制限を書き換えます.

[Jun@localhost ~]$ chmod 644 .ssh/authorized_keys
[Jun:.ssh]$ ls -lhart
合計 24K
-rw-------. 1 Jun Jun 1.7K 12月 2 19:08 2014 id_rsa
-rw-r--r--. 1 Jun Jun 407 12月 2 19:08 2014 id_rsa.pub
-rw-r--r--. 1 Jun Jun 786 12月 2 20:10 2014 known_hosts
-rw-r--r--. 1 Jun Jun 1019 12月 2 20:19 2014 authorized_keys
drwx------. 30 Jun Jun 4.0K 12月 2 20:19 2014 ../
drwx------. 2 Jun Jun 4.0K 12月 2 20:19 2014 ./




その他

ifconfig

IP address を調べます.Link encap:Ethernet の下の行に,inet addr:1x.2.8x.1xx の形式で表示されます.

man ssh

わからないことがあったら,man で調べると良いです.

ssh username@1x.x.8x.1xx -vvv

ssh で他の PC に入るときに,-v や -vvv などをつけてプロセスを確認できます.

SSH 力をつけよう

詳細なスライドです.なお slideshare には他にも有益なスライドがあるそうです.slideshare 内部を調べる場合は,例えば,

ssh inurl:www.slideshare.net

と検索してください.


リンク

Mac OSX UNIX 活用大全

ここで紹介したかなりの部分は,この本に書かれていたものです.他にも,Mac で Unix を使っている方には,とても参考になることが書いてあります.Mac で Unix をやるには,この本があるとないでは大違いです.はやく Moutain Lion version が出ると良いです.