とらりもん - SSH Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
注: この教材では, ユーザー名をsxxxxxとします。筑波大の教育用計算機では, これはs+学籍番号になるはずです。
!SSH
UNIXの特徴として,離れたところにあるUNIXコンピュータを,ネットワーク越しに使うことができる.そのために頻繁に使うのがSSHである.みなさんは,学術情報センターのichoというUNIXサーバーにアカウント(利用権)を持っているので,SSHでichoに接続してみよう:
''課題'': 以下のようにして、ichoサーバーに入ってみよ:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp
(*******は,各自の9桁の学籍番号の下7桁)
(パスワードを聞かれるので,ichoのパスワードを入れる.)
sxxxxx@unix01:~$
上のようなプロンプトが出ればOK.この中は,ichoの計算環境(シェル)である.
''課題'': ls, cdなど,これまで学んだコマンドを実行してみよ.
ichoから抜け出るには,
sxxxxx@unix01:~$ exit
とすればよい.
以上のようなSSH接続を使えば、世界中のどんな場所からも、ichoなどのUNIXサーバーを使うことができる。
ただし、このやりかたがうまくいくのは、コマンドラインでの操作に限る。サーバーのグラフィックウィンドウ(X-Windowシステム)まで操作することはできない。たとえば、上のやりかたでichoに入って、xclockという, 時計表示ソフトを立ち上げてみよう:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp
----@icho.ipe.tsukuba.ac.jp's password:
Last login: Wed Jan 11 07:57:20 2011 from ----
sxxxxx@unix01:~$ xclock
Gtk-WARNING **: cannot open display:
上のようにエラーが出てしまって、うまくいかない。これは, ichoサーバーのグラフィックス出力が, あなたのパソコンにうまく転送できないからである。仕方がないから, いったんichoから抜ける:
sxxxxx@unix01:~$ exit
そして, 再度, SSHでアクセスする。ただしこんどは, グラフィック出力をうまく転送できるように, -XというオプションをSSHコマンドにつける:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp -X
----@icho.u.tsukuba.ac.jp's password:
Last login: Wed Jan 11 07:57:20 2011 from ----
そしてxclockコマンドをためしてみよう:
sxxxxx@unix01:~$ xclock
{{attach_view(xclock.png)}}
こんどはうまくいって、時計のウィンドウが開かれるだろう。
SSHはWindowsでも利用できる。Windows上でのSSHクライアント(他のUNIXサーバーにSSHで接続するためのソフト)の代表は、TTSSHである(無料)。これを使えば、Windowsからもリモート(つまりネットワーク上で離れたところにある)のUNIX環境を操作できる。ただし、TTSSHでは、たとえ"-X"オプションをつけてもX-Windowシステムまで操作することはできない。グラフィックな入出力が必要な場合は、Cygwinを利用する。
SSHの強力な機能として、「ポートフォワーディング」というものがある。これは、あるUNIXサーバー(SSHサーバー)を踏台にして、別のサーバーに接続する技術である。たとえば、あるUNIXサーバー(これをAと呼ぼう)が、あるサービスを、特定のクライアントにしか提供していないとする。しかし、もしその「特定のクライアント」のひとつ(これをBと呼ぼう)がSSHサーバーであるならば、そのSSHサーバーに接続することができる人ならば、世界中のどのクライアントからでも、そのSSHサーバーBを踏台にして、サーバーAのサービスを受けることができる。
このSSHによるポートフォワーディングの技術は、うまく活用すると極めて便利であるが、その反面、セキュリティに関する問題やモラルハザードを引き起こしかねないので、注意が必要である。というのも、あるサーバー(上の話ではA)が、そもそも特定のクライアントにのみサービスを制限するのは、なんらかの事情でそのサービスを一般に公開できないからである。SSHによるポートフォワーディングは、そのサービスを受けれるクライアントを、サーバーAの管理者の許可も無く、広げてしまうことができてしまうのである。従って、SSHサーバーBの管理者やユーザーは、サーバーAに対してほんとうにSSHによるポートフォワーディングを行ってよいかどうか、慎重に考える必要がある。サーバーAの管理者に相談するのが最も無難だろう。
技術的には可能なことであっても、モラル的にそれが許されるかどうかを判断することは、常に必要である。インターネットの世界では特に。というのも、インターネットはまだ成立して間もない発展期であり、モラルや常識や法整備が確立されるよりも早いスピードで技術革新が進んでいる。それを濫用・悪用することは可能かもしれないが、その結果として、様々なトラブルが起きたり、その結果としてインターネットの持つ様々な便利な機能が「反社会的なもの」とみなされ使用が制限されたりするのは、社会全体にとって不幸なことである。
→ [[Unix/Linux入門]]へ戻る。!ポート番号を指定してssh接続
$ ssh xxx.yyy.zzz.www -p 8022
! .ssh/configの設定
.ssh/configに以下の設定をしておくと,
<<<
Host host_name
User user_name
HostName host_name.hoge.tsukuba.ac.jp
>>>
$ scp somefile.txt user_name@host_name.hoge.tsukuba.ac.jp:/home/user_name
$ ssh user_name@host_name.hoge.tsukuba.ac.jp
を
$ scp somefile.txt host_name:/home/user_name
$ ssh host_name
と簡単に記述できる.
.bashrc や .zshrcに
alias host_name='ssh user_name@host_name.hoge.tsukuba.ac.jp'
と記述しておけば,
$ ssh user_name@host_name.hoge.tsukuba.ac.jp
を
$ host_name
と更に簡単に記述できる.
!SSH
UNIXの特徴として,離れたところにあるUNIXコンピュータを,ネットワーク越しに使うことができる.そのために頻繁に使うのがSSHである.みなさんは,学術情報センターのichoというUNIXサーバーにアカウント(利用権)を持っているので,SSHでichoに接続してみよう:
''課題'': 以下のようにして、ichoサーバーに入ってみよ:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp
(*******は,各自の9桁の学籍番号の下7桁)
(パスワードを聞かれるので,ichoのパスワードを入れる.)
sxxxxx@unix01:~$
上のようなプロンプトが出ればOK.この中は,ichoの計算環境(シェル)である.
''課題'': ls, cdなど,これまで学んだコマンドを実行してみよ.
ichoから抜け出るには,
sxxxxx@unix01:~$ exit
とすればよい.
以上のようなSSH接続を使えば、世界中のどんな場所からも、ichoなどのUNIXサーバーを使うことができる。
ただし、このやりかたがうまくいくのは、コマンドラインでの操作に限る。サーバーのグラフィックウィンドウ(X-Windowシステム)まで操作することはできない。たとえば、上のやりかたでichoに入って、xclockという, 時計表示ソフトを立ち上げてみよう:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp
----@icho.ipe.tsukuba.ac.jp's password:
Last login: Wed Jan 11 07:57:20 2011 from ----
sxxxxx@unix01:~$ xclock
Gtk-WARNING **: cannot open display:
上のようにエラーが出てしまって、うまくいかない。これは, ichoサーバーのグラフィックス出力が, あなたのパソコンにうまく転送できないからである。仕方がないから, いったんichoから抜ける:
sxxxxx@unix01:~$ exit
そして, 再度, SSHでアクセスする。ただしこんどは, グラフィック出力をうまく転送できるように, -XというオプションをSSHコマンドにつける:
$ ssh sxxxxx@icho.u.tsukuba.ac.jp -X
----@icho.u.tsukuba.ac.jp's password:
Last login: Wed Jan 11 07:57:20 2011 from ----
そしてxclockコマンドをためしてみよう:
sxxxxx@unix01:~$ xclock
{{attach_view(xclock.png)}}
こんどはうまくいって、時計のウィンドウが開かれるだろう。
SSHはWindowsでも利用できる。Windows上でのSSHクライアント(他のUNIXサーバーにSSHで接続するためのソフト)の代表は、TTSSHである(無料)。これを使えば、Windowsからもリモート(つまりネットワーク上で離れたところにある)のUNIX環境を操作できる。ただし、TTSSHでは、たとえ"-X"オプションをつけてもX-Windowシステムまで操作することはできない。グラフィックな入出力が必要な場合は、Cygwinを利用する。
SSHの強力な機能として、「ポートフォワーディング」というものがある。これは、あるUNIXサーバー(SSHサーバー)を踏台にして、別のサーバーに接続する技術である。たとえば、あるUNIXサーバー(これをAと呼ぼう)が、あるサービスを、特定のクライアントにしか提供していないとする。しかし、もしその「特定のクライアント」のひとつ(これをBと呼ぼう)がSSHサーバーであるならば、そのSSHサーバーに接続することができる人ならば、世界中のどのクライアントからでも、そのSSHサーバーBを踏台にして、サーバーAのサービスを受けることができる。
このSSHによるポートフォワーディングの技術は、うまく活用すると極めて便利であるが、その反面、セキュリティに関する問題やモラルハザードを引き起こしかねないので、注意が必要である。というのも、あるサーバー(上の話ではA)が、そもそも特定のクライアントにのみサービスを制限するのは、なんらかの事情でそのサービスを一般に公開できないからである。SSHによるポートフォワーディングは、そのサービスを受けれるクライアントを、サーバーAの管理者の許可も無く、広げてしまうことができてしまうのである。従って、SSHサーバーBの管理者やユーザーは、サーバーAに対してほんとうにSSHによるポートフォワーディングを行ってよいかどうか、慎重に考える必要がある。サーバーAの管理者に相談するのが最も無難だろう。
技術的には可能なことであっても、モラル的にそれが許されるかどうかを判断することは、常に必要である。インターネットの世界では特に。というのも、インターネットはまだ成立して間もない発展期であり、モラルや常識や法整備が確立されるよりも早いスピードで技術革新が進んでいる。それを濫用・悪用することは可能かもしれないが、その結果として、様々なトラブルが起きたり、その結果としてインターネットの持つ様々な便利な機能が「反社会的なもの」とみなされ使用が制限されたりするのは、社会全体にとって不幸なことである。
$ ssh xxx.yyy.zzz.www -p 8022
! .ssh/configの設定
.ssh/configに以下の設定をしておくと,
<<<
Host host_name
User user_name
HostName host_name.hoge.tsukuba.ac.jp
>>>
$ scp somefile.txt user_name@host_name.hoge.tsukuba.ac.jp:/home/user_name
$ ssh user_name@host_name.hoge.tsukuba.ac.jp
を
$ scp somefile.txt host_name:/home/user_name
$ ssh host_name
と簡単に記述できる.
.bashrc や .zshrcに
alias host_name='ssh user_name@host_name.hoge.tsukuba.ac.jp'
と記述しておけば,
$ ssh user_name@host_name.hoge.tsukuba.ac.jp
を
$ host_name
と更に簡単に記述できる.