|
[
login
]
| ||
|
-
Apache/httpd
- bash - Firebird - git - gpg - grep & sed - MacOS X - メールサーバ - ネットワーク関連コマンド - プログラミング - sambaファイル共有 - su / sudo +
ssh
-
TextConsoleLife
- vi / vim - vnc - xxd - yum - UNIX関係のその他の資料 |
ssh
UNIX/LinuxではGUI操作よりも、CUIコンソールでの操作を日常的に行います。インターネットの黎明期ではtelnet [G] が多用されていましたが、現在は通常はSSHを用います。私自身はプログラミングやサーバ管理に関する仕事では、殆ど一日中SSHを使用しています。
SSHはtelnetと同じようにネットワーク経由でログインして作業するための仕組みです。telnetと異なるのは通信経路が暗号化されるということです。接続用パスワードも通信内容もすべて暗号化されます。 また、公開鍵認証を使用することで、パスワード認証よりずっと高度なセキュリティの確保が望めます。更に、OpenSSHではポートフォワーディング(トンネル)機能により、この暗号化された接続を用いて、任意のポートの通信を通すことが出来ます。これにより暗号化されていないプロトコルをセキュアに利用出来るとともに、遠隔地のサーバのファイアウォール内だけで使用可能な多くの操作が行えるようになります。 Columns:
公開鍵認証
公開鍵認証用の鍵の生成 >ssh_keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/UserName/.ssh/id_rsa):HitEnter
Enterpassphrase (empty for no passphrase): XXXX
Enter same passphrase again: XXXX
Your identification has been sabed in /home/UserName/.ssh/id_rsa
Your public key has been saved in /home/UserName/.ssh/id_rsa.pub
the key fingerprint is :
生成された鍵のFingerprint
リモートのコマンドを実行 > ssh username@somewhere.com php -i | grep "PHP\ Version"
PHP Version => 5.2.9
※パスワードなしの公開鍵認証を設定していれば、パスワードの確認もされないため、スクリプトなどから完全に自動実行が可能となる。
トンネル機能
リモートへのトンネルと、リモートからのトンネルの例ポートフォワーディング: ssh -g -L 8080:192.168.111.200:80 UserName@192.168.111.1
ローカルで受けた通信をリモート側ネットワークにフォワードsshクライアントはUserNameで192.168.111.1にssh接続し、 sshクライアントの8080ポートへのアクセスを、 192.168.111.1側のネットワークの192.168.111.200の80ポートに転送する。 リバースポートフォワーディング: ssh -g -R 8080:192.168.222.200:80 UserName@192.168.222.1
リモートで受けた通信をローカル側ネットワークにフォワードsshクライアントはUserNameで192.168.222.1にssh接続し、 192.168.222.1の8080ポートへのアクセスを、 sshクライアント側のネットワークの192.168.222.200の80ポートに転送する。 さらに荒技で再接続かけるとか(未検証)。 while [ true ]; do ssh -g -R 8080:192.168.222.200:80 UserName@192.168.222.1; done;
【重要】1024番以下のポートは特権ポート(privileged ports)と呼ばれ、 root権限以外では接続元・接続先のサーバ自身には転送出来ません。 どうしても必要な場合にはroot権限で実行するか、su や sudo などでrootに昇格して実行する必要があります。 設定スクリプトの使用による、簡単なsshトンネルの作成 > cd ~/.ssh
> cat config
Host test
HostName 192.168.0.1
User UserName
GatewayPorts yes
LocalForward 3050 192.168.0.2:3050
LocalForward 8080 192.168.0.3:80
^D
> ssh test
ちなみにWindowsからPuttyで同じことを行うためには以下のような感じで。 ![]()
sshfs
OS上のユーザ空間で利用可能なファイルシステムの基盤記述であるfuse上で動作するファイルシステムのひとつです。実際的にはSSH/SFTPでアクセス可能なサーバであれば、ローカルのディレクトリにたいしてマウントが可能となります。
CentOSでは追加レポジトリを設定することで、yumによって簡単にインストールすることができます。 sudo yum install sshfs
sudo usermod -G fuse UserName
上記が完了したらあとは実際に以下のコマンドのように使用するだけです。 mkdir -p ./mount_point
sshfs UserName@xxxx.xxx ./mount_point
使い終わったら fusermount -u ./mount_point
rmdir ./mount_point
という感じで。これがあると公開鍵認証のsftp接続に対応していない開発ツールでもいけます。 ただし、マウントした空間でgrepやアーカイブの圧縮・展開したりすると泣けるくらい遅いです。たぶん、マウントオプションでキャッシュなどの設定を工夫すれば解決出来るのかもしれませんが、そのあたりのことはsshでやった方が手っ取り早いです。 あと、シンボリックリンクで泣ける事態を引き起こさないように注意してください。普通にマウントするとシンボリックリンクは元の場所で設定された通りの位置にリンクしています。 External links:
|
お知らせ
公開ページにだけスナップショット を組み込んでみました。 Sylph1,2及びOpenSylphについてはこちらをご覧ください。 Powered by linode.com Powered by easyDNS LastUpdate:
09/05
XML/DOM操作
09/05
php
09/05
PHP/SSH2モジュール
09/03
grep & sed
08/30
設定ファイル
08/30
vi / vim
08/18
git
08/17
Bash その他
08/16
システム関係
08/12
screen
|