SSHを使う@UbuntuServer7.10
これは何?
SSHがないと話にならないので作ってみました。SSHのインストール
使い方
- ユーザ作成
必要なユーザーを作成する。
ホストのほうはIPアドレスを使う。
- 簡単にする方法
- ユーザディレクトリに.sshを作成する
- configファイルを作成
- HOST AccountName→呼び出しアカウント名を指定
- HostName 192.168.X.X→ホスト名を指定
- port 999 →ポートを変えてたら書いておく
参考サイト
http://www.geocities.jp/turtle_wide/tools/ssh.html公開鍵方式でキーを作成する
ssh-keygen -t rsaパスフレーズはなし?
以下のファイルができる
- id_rsa
- 秘密鍵
- これはパーミッションを変更する。
chmod 600 $HOME/.ssh/id_rsa
- クライアント側で使用
- id_rsa.pub
- 公開鍵
- サーバー側に登録→authorized_keys
作成した公開鍵をサクセス許可対象として登録
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
パーミッションは600で。
chmod 600 $HOME/.ssh/authorized_keys
で、できた秘密鍵をコピーして持ってくる。
- .ssh/id_rsa
ログインテスト
- ログアウト
- ログイン
- パスフレーズがないのでそのままログインのはず。
よく考えると
これらはクライアント側でやるって話ですね。- まずログインしたいサーバーにSSHでパスワードログインしておく
- 公開鍵と秘密鍵のペアを作成する。
- 公開鍵だけはログインしたいサーバーに置く
- authorized_keysに追記するか
- 新たなファイルを作ってそれをリダイレクトで追記
- で、一旦ログアウトして再度sshでログイン。
- 成功すれば完了
問題点
この公開鍵がコピペできない。geditじゃ開けるけど選択できない。ちなみにファイル自体は改行なしです。
ポートフォワーディングをする。
ポートフォワーディングとは
- sshを迂回経路として特定のポートをlocalhostに持ってきたり、リモートサーバーに持っていったり出来ます。
- 以下コマンド
- 自分のところに持ってくる場合
ssh user@[remotehostA] -L [remotePortA]:localhost:[localPort] -p SshPort
- ヒトンチに持っていく場合。(使ったこと無い)
ssh user@[remotehostA] -R [remotePortA]:remotehostB:[remotePortB]
- 二重ポートフォワーディングする場合。
- localhostから見て一段目は上記でよいが、そのままではポートの利用範囲がそのsshコマンドを発行したlocalhostに限定されるので二段目以降は以下の様に記述
- -g
ssh user@[remotehostB] -L [remotePortB]:localhost:[remotePortA] -p SshPort -g
ポート開設の確認
- 以下のコマンドで確認できる。
netstat -an | grep [localPort]
SSHのダイナミックポートフォワーディング+SOCKS4/5 Proxy Serverを利用する。
そもそもダイナミックポートフォワーディングとは
- SSHでポートフォワーディングを行うと-Lでフォワードするポートを限定することになる。
- 単一ポートの場合は問題ないが、複数ポートをいじるプロトコルの場合は面倒にな る。
- これが自由にポートを指定するプロキシとなる。
- ただし、プロキシサーバーへの接続にはアダプタツールが必要。
- 今回これがSSH プロキシコマンド connect.c 、パッケージconnect-proxyとなる。
- ただし、プロキシサーバーへの接続にはアダプタツールが必要。
早速入れてみる
- インストール
sudo apt-get install connect-proxy
- 利用方法
- .ssh/configに以下の行を追加
- 192.168.1.*はProxyで経由するためのアドレス。
- 1234はダイナミックフォワーディングのポート番号
- .ssh/configに以下の行を追加
Host 192.168.1.*
ProxyCommand /usr/bin/connect-proxy -S localhost:1234 %h %p
- sshで接続:これでSSHクライアントがSOCKS4/5 Proxy Serverとして作動を開始する。
ssh user@[remotehostB] -D 1234 -p SshPort
- autosshという手もある。
ただし、これを使えるのは今回設定したSSHとSocketServerに対応したプログラムのみ。
- 任意のプログラムをSocketServer越しに使いたい場合は以下の設定が必要
- tsockesを入れる。
sudo apt-get install tsocks
- 設定をする。
sudo nano /etc/tsocks.conf
- すでにごちゃごちゃ書いているが今回対象がlocalhost:1234なので以下の様な設定のみ有効にする。
server = 127.0.0.1 # ここはUbuntu9.0.4版にはバグが残っているらしくlocalhostでは起こられる
server_type = 5
server_port = 1234
- で、vncの場合以下のようにやればつながる。超便利。
tsocks vncviewer hostname:1
- ただし、autosshを利用する場合には必ず接続が途切れないように設定しないと一定時間たつとすぐ切れる。
ファイルを転送したい場合。
- 標準のnautilusでも出来なくはないが面倒なのでgFTPを利用すると簡単。
tsocks gftp
参考サイト
2009年11月22日(日) 04:49:05 Modified by ryunosinfx