[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:21285] ssh and devpts



猪谷%potato に移行中 です。

最近の potato バージョンは、devpts なるものを導入したようですが、これ
と openssh の組合せで ssh/scp がうまく働かなくなりました。

具体的には、どこぞのホストを指定して ssh/scp しようとした時、パスワー
ドなりパスフレーズの入力をしなければならない段になると、

  You have no controlling tty.  Cannot read passphrase.

と出てしまい、接続を切られてしまいます。

いろいろ調べた結果、openssh-1.2.2 (pl1 でも同様)の readpass.c 中で
"/dev/tty" を決めうちで open しようとするのだけれど、新しめの potato 
環境では/dev/tty のパーミッションが

ls -l /dev/tty
crw-r--r--    1 root     sys        5,   0 Mar 11 02:42 /dev/tty

となっているため、open できず、ssh はその場で終了してしまいます。

とりあえず readpass.c で、/dev/tty、ttyname(1)、/dev/getenv("TTY") の
open を試みるように書き換えたら、どうにかこうにか ssh と scp が動くよ
うになりました。

が、これのもっと普通かつ根本的な解決策ってないのでしょうか?
なにか既知の対策を見落としてますか?

/dev/tty を有効にするような設定があるんでしょうか。
# devpts の資料って探したつもりなんですが見つからない…

ひょっとしてうちが upgrade に失敗して変なことになってるだけですか?

ii  libc6          2.1.2-11       GNU C Library: Shared libraries and Timezone

なシステムでは問題ないのですが(こいつでは /dev/pts は使われていないら
しい)、今週に入って入れ換えた

ii  libc6          2.1.3-6        GNU C Library: Shared libraries and Timezone

なシステムだと上のような状況に陥ります。

-- 
O
 o ●-●     猪谷 英一郎 == Eiichiro Itani
   -ゝ          emu@xxxxxxxxxxxxxxx