nDiki : OpenSSH

OpenSSH

関連情報

2001年1月10日 (水)

OpenSSH の sshd、一般ユーザーでうまく動かず

とあるサーバー(FreeBSD)にセキュアな接続がしたいのだが、sshd が動いていない。 一般ユーザーで sshd がうまく動くのか実験。

インストールしたのは openssl-0.9.6 + openssh-2.3.0p1(zlib はインストールされていたようだ)。

 $tar zxvf openssl-0.9.6.tar.gz
 $cd openssl-0.9.6
 $./config --prefix=$HOME/local
 $make
 $make test
 $make install

 $tar zxvf openssh-2.3.0p1.tar.gz
 $cd openssh-2.3.0p1
 $./configure --prefix=$HOME/local --with-ssl-dir=$HOME/local
 $make
 $make install

インストールは成功。 さっそく sshd を起動してみる。

 $HOME/local/sbin/ssh -p 9999

起動も問題なし。外部からアクセスしてみると、接続できず。RSA認証パスワード認証も駄目。 デバッグ出力を見てみると PAM を使う権限がないようだ。 ちなみに --without-pam をつけて configure してコンパイルしてみたところ、crypt まわりのシンボルがリンクできなくてビルドできず。

ちなみに手元の Debian GNU/Linux unstable で、openssh をビルドしたものは、上記実験はなんなく成功(接続は localhost から、openssl は Debian パッケージを使用、openssh は tar ball からビルド)。 また、Plamo 2.0 の方に実験してもらったら tty のオープンの権限がなくてはねられるらしい。ssh -p 9999 ls 等の command の実行は OK らしい。

ということで、環境によって権限関係でいろいろ結果が変わってくるようだ。 FreeBSD でなんとかうまく動かないかな。

スポンサード リンク
[ 1月10日全て ]

2004年2月2日 (月)

[ Linux ] SSH remote port forwarding

Web カメラ*1画像ファイルとか、ノート PC から cron で定期的にサーバへ送信している。しかしPUSHじゃなくてPULLも活用したい。

それから Web サーバはホスティングサーバなのであまりヘビーな事はできないし、ツールのビルドに必要なライブラリとかを一般ユーザで用意するのもいろいろ面倒ということで、一部の処理は手元のホストでやらせてもいいかなと。

だいたいいつもIPマスカレード下にいるので、トンネルを用意しないと。 SSHがやはりお手軽かな。 例えば、

 ssh -R XXXX:127.0.0.1:80 www.naney.org

しておけば www.naney.org 上からそのホストに

 wget http://localhost:XXXX/service.cgi?foo=1234

などとしてPULLできるようになる。 ...はずだがうまくいかないや。何故?

プライベートネットワーク同士ではうまくいったので「ルータがらみ?」かと思ったが、別の外部ホストに対して実験してみたところそっちではうまくいったので、そうでもない様子。

でいろいろチェックしてみたところ www.naney.org

 Feb  2 12:08:41 yyyy sshd[61628]: error: Hm, dispatch protocol error: type 80 plen 33

エラー吐いてた。 もしやと思って ssh 実行時に -1 したら成功。 通常の SSH接続だと ssh -2 でもつながるし、LocalForward でもプロトコル2でつながっているんだけどなぁ。

そういえば ssh -4 は 'Use IPv4 only.' (OpenSSH_3.6.1p2)。 'Force protocol version 4' が必要な時代がきたらどうするのかな?

*1休止中

[ 2月2日全て ]

2004年7月26日 (月)

TortoiseSVNsvn+ssh

マニュアルを読んだら、SSHクライアントの設定のところでユーザ名だけでなくパスワードも指定する例が示されていた。

 前略\TortoisePlink.exe -l ユーザ名 -pw パスワード

なるほど。動いた。しかしかなり嫌な感じ。

ということで、「PC日記: svn+ssh on Windows」で紹介されている方法にしてみた。

準備 (Windows 側)

  1. PuTTYインストール

SSH用の鍵ペアを作成 (Windows 側)

  1. PuTTYgen を実行。
    1. SSH2 RSA を選択。
    2. Generate マウスを適当に動かす。
    3. パスフレーズを入力。
    4. Save private key ボタンで PuTTY Private Key File (.ppk) として保存。
    5. 「Public key for pasting into OpenSSH authorized_keys file:」 覧に表示される文字列をコピーして、テキストファイルに保存(名前は任意)。

SSHの鍵をサーバ側に置く (サーバ側)

  1. そのファイルの中身を Subversion リポジトリのあるサーバの ~/.ssh/authorized_keys に追加。

接続テスト (Windows 側)

  1. PuTTY を実行。
    1. Session - Host Name にリポジトリのあるホスト名を指定。
    2. Connection - Auto-login username にリポジトリのあるホスト上のアカウントを指定。
    3. Connection - SSH - Auth - Private key file for authentication: で 保存した ppk ファイルを指定。
    4. Session - Saved Sessions にホスト名を入力して Save。
    5. Open ボタンを押して接続確認。

TortoiseSVN でパスフレーズ入力を省略できるように Pageant を起動 (Windows 側)

  1. Pageant を起動。
    1. キーリストを開いて Add Key. 保存してある ppk ファイルを指定。パスフレーズを入力。

この状態で TortoiseSVN から接続できるようになった。

追記

2005年8月4日に若干体裁を整理。

[ 7月26日全て ]

2004年8月5日 (木)

OpenSSH for Windows

やはり Windows - WindowsUnison を使う事に未練がある。 リモートの Windows BOX で sshd をたてればなんとかなる?

ということで OpenSSH for Windows

Cygwin の中で必要なものだけを抜き出したパッケージ。 cwRsync と同じタイプ。

Windows XP Home Edition SP1 にインストーラインストール後、説明どおり group と passwd を作成。 sshd をサービスとして開始する。 Internet Connection Firewall の設定を変更して22番ポートを開ける。

これで Linux BOX からSSH接続成功。

しかしなんか変なシェルで使いづらい。 またコマンドが実行に失敗してエラーモーダルダイアログが出る時は sshd が動いているPCの画面に表示される。SSHクライアント側からは知るよしもないし、ボタンを押すすべもない。

うーん。不便。

[ 8月5日全て ]

2013年3月1日 (金)

UnisonWindowsLinux で双方向ファイル同期 with Plink

Windows 上で作成・更新したファイルをサクッと Linux 上に反映させるのに、やっぱり Unison File Synchronizer を使うことにした。Windows 上の Unison から SSH 経由で Linux 上と同期させる構成ってしたことなかったな。ちょっと調べつつ設定。

Windows

Unison-2.40.102.zip をダウンロードしてきて C:\Uers\Naney\local\Unison-2.40.102 として展開。テキスト版(CLI 版)を使いやすいように unison.exe という名前に変える。

SSH 経由の接続については PuTTY についている Plink を使うことにした。OpenSSH とはちょっと違うので下記のようにバッチファイル C:\Uers\Naney\local\Unison-2.40.102\plinkunison.bat を作る。

 @c:\Users\Naney\local\PuTTY\plink.exe -l naney -ssh remote.example.com unison -server

同期先のホスト remote.example.com にアカウント naney で SSH 接続して unison をサーバとして起動するというバッチファイル。

次に Unison 同期設定を書いたプロファイルファイル c:\Users\Naney\.unison\test.prf を作る(テスト用)。内容は以下。

 root = c:\Users\Naney\unisontest
 root = ssh://naney@remote.example.com/home/naney/unisontest

 sshcmd=c:\Users\Naney\local\Unison-2.40.102\plinkunison.bat

 times = true
 fastcheck = yes

双方の unisontest ディレクトリを同期する設定になってる。

Linux

最新の OCaml (Unisonビルドに必要)と Unison を取ってくる。

 wget http://caml.inria.fr/pub/distrib/ocaml-4.00/ocaml-4.00.1.tar.gz
 wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.102.tar.gz

あとは以前の インストール手順 と同じ流れでインストール

実行

Windows のコマンドプロンプトから

 unison test

で同期できることを確認。

あとは実際の同期したいディレクトリのペアにあったプロファイルファイルを作っていけば OK。

[ 3月1日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.219697s / load averages: 0.39, 0.52, 0.53
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker