トップページunix
1001コメント328KB

SSH その4

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
SSHに関する情報交換のスレッドです。
FAQ、リンク集は >>2-5 あたり。

過去ログ
 Part1:http://pc.2ch.net/unix/kako/976/976497035.html
 Part2:http://pc.2ch.net/test/read.cgi/unix/1028157825/ (dat落ち)
  春山さんのとこ→ http://www.unixuser.org/%7Eharuyama/security/openssh/dat/pc.2ch.net_80__unix_dat_1028157825.html
 Part3:http://pc5.2ch.net/test/read.cgi/unix/1058202104/
0709名無しさん@お腹いっぱい。2005/11/11(金) 14:27:10
>>708
これは、多分、無理だと思います。
SSHサーバー側で、もんく、ありましたので....
0710名無しさん@お腹いっぱい。2005/11/11(金) 14:29:37
>>709
なんで無理なん?
0711名無しさん@お腹いっぱい。2005/11/11(金) 14:39:29
>>710
そうです。始めはこれと似た方法でしましたが、SSHサーバー側で
なぜ、毎回、起動するのはいやだということでしたので....
0712名無しさん@お腹いっぱい。2005/11/11(金) 14:43:31
>>711
言ってることがよくわからないんだが。
>>708 で ssh をフォアグラウンドで上げれば
>>694 と変わりないじゃん。
0713名無しさん@お腹いっぱい。2005/11/11(金) 14:54:02
ps コマンドで生死の検査をする方がずっと危険度が高い気がするのだが。
その「SSHサーバ運用者」がアレな気も。
0714名無しさん@お腹いっぱい。2005/11/11(金) 14:54:50
>>712
>>>711
>言ってることがよくわからないんだが。
こちは、SSHサーバは別の会社で管理するということです。
>>708 で ssh をフォアグラウンドで上げれば
たれかが、CTRL+Cかを押すと切れるはずですね。
>>694 と変わりないじゃん。
プロセス検索で、あったら、とりあえず再起動するところはとおらないはずです。
0715名無しさん@お腹いっぱい。2005/11/11(金) 14:58:46
だめだ、話が通じない。
ここで聞くより
自分の母語のコミュニティで聞いた方がいいんじゃないか?
07167082005/11/11(金) 15:03:07
>>714
だから、 >>708 をバックグラウンドで動かせばいいじゃん。

と思ったが、 autossh でも使った方がいろいろ面倒が無くていいか。
0717名無しさん@お腹いっぱい。2005/11/11(金) 15:15:33
>>716
>>>714
>だから、 >>708 をバックグラウンドで動かせばいいじゃん。
ありがとうございます。
しかし、この方法は、試したことがあるので、とりあえずは使わないです。
0718名無しさん@お腹いっぱい。2005/11/11(金) 15:20:51
>>716
>>>714
>だから、 >>708 をバックグラウンドで動かせばいいじゃん。
ありがとうございます。
しかし、この方法は、試したことがあるので、とりあえずは使わないです。
0719名無しさん@お腹いっぱい。2005/11/11(金) 21:04:28
死んでたら自動的に立ち上げたいの?
つ daemontools
0720名無しさん@お腹いっぱい。2005/11/11(金) 21:08:45
>>719
絶対出てくると思った。

俺は我慢してたが。
07217192005/11/11(金) 21:25:46
>>720

ごめんねえ
「そろそろ来るころだと思ったよ」ってやつ?

我慢すると体によくないよ。
0722名無しさん@お腹いっぱい。2005/11/11(金) 22:01:17
inittab に書いとけ。
0723名無しさん@お腹いっぱい。2005/11/13(日) 10:57:14
漏れ実際に daemontools 使って ControlMaster 立ち上げてまふ。
けど、たまにソケットファイルのロックにひっかかって死んでることが...
0724名無しさん@お腹いっぱい。2005/11/13(日) 18:10:13
何がしたいか、よくわからんが、-Nでいいんじゃねーの?
0725名無しさん@お腹いっぱい。2005/11/13(日) 19:44:26
「ソケットファイルのロック」って何?
0726名無しさん@お腹いっぱい。2005/11/13(日) 20:59:06
>>725
プロセスが死んだ時に ControlPath に書いたソケットファイルが残っちゃうってはなし。
0727名無しさん@お腹いっぱい。2005/11/14(月) 15:00:47
ttp://www.zelow.no/floppyfw/download/contrib/ssh/
ここのパッケージを使って
floppyfw で sshd を動かすところまではできたのですが,
パスワードなしでのログインができません.
クライアントの公開鍵をサーバの /root/.ssh/authorized_keys
に追加しているのですが, 鍵認証に失敗してパスワード認証しようとします.
パスワードなしでログインできるようにするにはどうすればいいでしょうか?
ログは以下のようになっています.

クライアント側ログ
$ ssh -v root@192.168.20.19
[snip]
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Offering public key: /home/user/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
root@192.168.20.19's password:
0728名無しさん@お腹いっぱい。2005/11/14(月) 15:01:34
>>727
サーバ側ログ
# sshd -d
[snip]
debug1: userauth-request for user root service ssh-connection method none
debug1: attempt 0 failures 0
Failed none for ROOT from 192,168,20,1 port 3970 ssh2
debug1: userauth-request for user root service ssh-connection method publickey
debug1: attempt 1 failures 1
debug1: test whether pkalg/pkblob are acceptable
Failed publickey for ROOT from 192,168,20,1 port 3970 ssh2
debug1: userauth-request for user root service ssh-connection method publickey
debug1: attempt 2 failures 2
debug1: test whether pkalg/pkblob are acceptable
Failed publickey for ROOT from 192,168,20,1 port 3970 ssh2
debug1: userauth-request for user root service ssh-connection method keyboard-interactive
debug1: attempt 3 failures 3
debug1: keyboard-interactive language devs
Failed keyboard-interactive for ROOT from 192,168,20,1 port 3970 ssh2
0729名無しさん@お腹いっぱい。2005/11/14(月) 15:52:59
>>726
皆さんの協力、ありがとうございます。
この起動セールスクリプトは問題ないです。
この問題は急ぎやらなければできないので、結局はCronTabに登録して、1分ごと
にチェックするようにして、解決しました。今のところ、元は30分〜4時間で
一回、この起動セールスクリプトが切れたんですが、10時間ほどだったんですが
発生してなかったです。よい解決方法とは、なりませんが......
 
0730名無しさん@お腹いっぱい。2005/11/20(日) 17:35:33
どこで聞くべきかよくわからないので、ここで質問させてください。

Vine3.2で sftp サーバーを構築しています。
hpn-ssh のパッチを当てると高速化が可能であると聞いて、以下の手順で導入してみました。

1) もともと入っていた ssh は apt-get remove ssh で削除
2) openssh-4.2p1.tar.gz をDLして解凍
3) hpn-ssh-4.2p1-hpn11.diff のパッチを当てる
4) $ ./configure --prefix=/opt --sysconfdir=/opt/etc/ssh
5) $ make
6) # make install
7) /etc/rc.d/init.d/sshd の中の sshd 等の場所を prefix で指定したものに書き換え
8) 再起動

これでとりあえず接続は出来るようになったのですが、いかんせん速度が遅いまま
なのです。入れ替える前は 200-300kB/s だったのですが、入れ替え後もほとんど
同じ数値です。hpn-ssh を有効にするには何かオプションの指定のようなことが必要
なのでしょうか? それとも PentiumIII 1GHz ではこのくらいの速度が限界なのでしょ
うか? ちなみに ftp 接続では 8-10MB/s 程度の速度が出ています。
0731名無しさん@お腹いっぱい。2005/11/23(水) 12:30:06
>何かオプションの指定のようなことが必要
知らないが、パッチを嫁ばわかるだろ。
0732名無しさん@お腹いっぱい。2005/11/24(木) 13:22:03
ssh の Remote Forwarding が下のような警告で失敗するのですが,
1023以下のポートの転送はできないのでしょうか?

$ ssh -N -v -R80:localhost:80 remote
...
debug1: Remote connections from LOCALHOST:80 forwarded to local address localhost:80
debug1: Entering interactive session.
debug1: Remote: Server has disabled port forwarding.
debug1: remote forward failure for: listen 80, connect localhost:80
Warning: remote port forwarding failed for listen port 80
0733名無しさん@お腹いっぱい。2005/11/24(木) 13:30:42
特権ポートだけど root ならできるんじゃないの?
0734名無しさん@お腹いっぱい。2005/11/24(木) 16:36:39
>>733
root でも Remote Forwarding で特権ポートは使えませんでした.
サーバ側で root 権限で Local Forwarding ならいけるようです.
remote# ssh -N -v -L80:localhost:2080 localhost
client$ ssh -N -v -R2080:localhost:80 remote
のように二つ動かすしかないんでしょうか.
板違いになりますが, こういうことは iptables で可能なんでしょうか?
0735名無しさん@お腹いっぱい。2005/11/24(木) 16:48:09
iptablesなら可能だね
0736名無しさん@お腹いっぱい。2005/11/24(木) 17:03:37
>>734
ちゃんとサーバー側の root で接続してる?
$ ssh -N -v -R80:localhost:80 -l root remote
0737名無しさん@お腹いっぱい。2005/11/24(木) 20:03:54
>>735,736
すいません. なんかボケてたみたいです.
もう一度確認したら root なら Remote Forwarding でできました.
でもこれでは全部 localhost からのアクセスになってしまって
.htaccess でアクセス制限できないんですね.
ディレクトリごとの制御とかはできなくなりますが,
サーバ側の iptables を併用するしかなさそうです.
0738名無しさん@お腹いっぱい。2005/11/25(金) 15:08:30
いまがver3を使っているのですが、問題ありませんか?
0739名無しさん@お腹いっぱい。2005/11/25(金) 15:35:51
自分で判断できないのは問題ですね。
0740名無しさん@お腹いっぱい。2005/11/30(水) 00:27:37
自由に使用できるサーバを、
友人に公開しようと思っているのですが、
IP アドレスが一つしかありません。
WEB サーバの方は、delegate を使用してなんとかなるのですが、
SSH も delegate を使用できますでしょうか。
ちなみに、JAIL 環境でプライベート IP が振ってあります。
あと、DNS は書いてあります。
ポートをずらして公開するのが手っ取り早いでしょうか。

MOUNT="/* www.example.com1* vhost=-www.example.com1" \
MOUNT="/* www.example.com2/* vhost=-www.example.com2" \
MOUNT="/* www.example.com3/* vhost=-www.example.com3" \
0741名無しさん@お腹いっぱい。2005/11/30(水) 00:31:58
友人の発信元IPアドレスを見てなんとかする方法もあるけどポートずらすのがいいと思う。
0742名無しさん@お腹いっぱい。2005/11/30(水) 00:46:57
22 番を外部公開してても、
暗号鍵認証でのみ許可してれば
セキュリティホール以外で進入されることは
ないと考えてよいですか?
0743名無しさん@お腹いっぱい。2005/11/30(水) 01:01:26
>>742
いいえ
0744名無しさん@お腹いっぱい。2005/11/30(水) 01:43:24
>>742
公開鍵ではなくて?
0745名無しさん@お腹いっぱい。2005/11/30(水) 02:05:14
>>744
そんなことは知っています。
どなたかわかる方、お願いしますm(_ _)m
0746名無しさん@お腹いっぱい。2005/11/30(水) 02:10:20
>>742
絶対はないです。
0747名無しさん@お腹いっぱい。2005/11/30(水) 03:17:18
セキュリティに関して「安全ですか?」と聞けば答は常に「いいえ」。
その質問は一番大きなセキュリティホールが質問者の頭に開いている事を示しているから。
そして>>745のレスはおまえが人間のクズである事を示しているので、
もうマトモな解答は付かないだろう。
0748名無しさん@お腹いっぱい。2005/11/30(水) 03:28:59
LANケーブルをひっこ抜きました。
無線LANもserialも繋がってません。
これで絶対安全ですか?
0749名無しさん@お腹いっぱい。2005/11/30(水) 06:25:14
コンソールがのこっとる
0750名無しさん@お腹いっぱい。2005/11/30(水) 08:10:41
テンペストで画面もまる見え
0751名無しさん@お腹いっぱい。2005/11/30(水) 08:23:23
引っこ抜くなら電源ケーブルだな
0752名無しさん@お腹いっぱい。2005/11/30(水) 10:06:41
透視でHDDの中身もまる見え
0753名無しさん@お腹いっぱい。2005/11/30(水) 11:55:09
円盤引っこ抜け
0754名無しさん@お腹いっぱい。2005/11/30(水) 11:57:20
昨日までログインできてたんだけど、今日になってできないようになった。
ssh -vvvvv me@myhost すると、id_rsa読む所で、

debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype

こんなん出るんだけど、これって何が起こったの?
07557422005/11/30(水) 13:22:47
>>743,744,746,747
どうもありがとうございました。
ソーシャルハッキングなどを想定してるので「いいえ」ということでしょうか。
少なくともパスワード総当りでは通れないですよね。

>>745 は自分ではないのですが、
不愉快な思いをさせて失礼しました。
0756名無しさん@お腹いっぱい。2005/11/30(水) 13:57:06
>>754
> ssh -vvvvv me@myhost すると、

v は三つまで。

> こんなん出るんだけど、これって何が起こったの?

その部分は、まず rsa1 鍵だと思って読んでみたら違ったー、と言っ
てるとこなんで、ログインできない理由とは無関係。
07577542005/11/30(水) 15:12:39
> その部分は、まず rsa1 鍵だと思って読んでみたら違ったー、と言っ
それは読めば判るんだけど、これって昨日まで使ってたRSA 鍵なんだけど。

ログインできない最後の理由は判っていて、RSA鍵が読めない為に鍵認証
できなくて、パスワード認証は禁止してるからなんだけど。

どうしてRSA鍵が読めないなんて言い出すのかが判らんのよ。
パスワード認証有効にする訳にもいかんし、ssh-keygen -t rsa で鍵作りなおしても
やっぱり読めないとぬかしやがるし。

パーミッションも確認したけど、.ssh/は700で .ssh/id_rsa も600になっとる。
ワケワカラン。
0758名無しさん@お腹いっぱい。2005/11/30(水) 15:15:08
>>757
サーバ側の設定が変わったってことはないの?
07597542005/11/30(水) 15:45:08
>>758
昨日はssh関係いじった覚えはないんだけど。
そもそも、鍵が読めないのとサーバの設定になんか関係あるの?
0760名無しさん@お腹いっぱい。2005/11/30(水) 15:47:42
>>754
サーバ側でログ確認した方がいいなじゃない?
それか -d とか。
0761名無しさん@お腹いっぱい。2005/11/30(水) 16:52:40
>>754
例えば、Protocol 2 になると rsa1 が使えなくなったりするわけですよ。
サーバ側の管理を >>754 がやってるかどうかも俺らは聞いてないし、
適切にアドバイスできるとでも思ってるんか?

「ログ見ろ」としか言えねぇよ。
0762名無しさん@お腹いっぱい。2005/11/30(水) 16:57:45
strace使うとかね。
0763名無しさん@お腹いっぱい。2005/12/08(木) 00:44:53
sshでリモートログインした時に
~/.ssh/rc
から
exec zsh
で zsh を起動させたいんだけど起動しない。
sh ~/.ssh/rc
としてやると普通に起動するんだけど…。
もしかしてこれって仕様?
0764名無しさん@お腹いっぱい。2005/12/08(木) 01:34:49
>>763
sshdからpopen(3)されるだけなので対話的プログラムは実行できない。
0765名無しさん@お腹いっぱい。2005/12/10(土) 02:08:14
NAT 配下のマシン(A)にアクセスさせたく、グローバルIPをもっている
マシン(B) に対して

ssh -R 8888:localhost:22 hostB

とやりました。この時、hostB にログインして ssh -p 8888 localhost
をすると hostA に接続できるのですが、この hostA, hostB とは関係のない
hostC から ssh -p 8888 hostB しても hostA には接続できません。

これを実現させるのにはどのような設定が必要でしょうか?

0766名無しさん@お腹いっぱい。2005/12/10(土) 02:43:12
>>765
sshd_configのGatewayPorts
0767名無しさん@お腹いっぱい。2005/12/10(土) 09:21:21
>763
>It must not produce any output on stdout; stderr must be used instead.
とか書いてあるし、~/.ssh/rc でやるのは無理があるんじゃない?
ログインシェルの初期設定ファイルで環境変数を見て SSH_* が設定されていたら zsh にとばすとか。
っていうか ssh -t example.com zsh だとあかんの?
0768名無しさん@お腹いっぱい。2005/12/19(月) 07:47:20
すみません
sshクライアントからviを起動すると未確認のエスケープシーケンスがある。
というエラーが出てしまい、ファイルの編集ができません。
sshからテキストファイルを編集する何か良い方法はないものでしょうか?
0769名無しさん@お腹いっぱい。2005/12/19(月) 08:00:06
ターミナルを変更したら、エラーが無くなりました。吊ってきますorz
0770名無しさん@お腹いっぱい。2006/01/13(金) 16:46:47
保守
0771名無しさん@お腹いっぱい。2006/01/25(水) 15:50:08
Debian sargeでOpenSSH 3.8.1p1, OpenSSL 0.9.7eを使ってsshサーバを立てようとしています。
あるIPアドレスからの接続はパスワード認証と公開鍵認証を許可して、それ以外のIPアドレスからの
接続は公開鍵認証のみ許可をする、といった感じの設定は出来ますか?
0772名無しさん@お腹いっぱい。2006/01/25(水) 16:22:10
キター  ヽ(゚∀゚)ノ
CVE-2006-0225 http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0225
http://www.st.ryukoku.ac.jp/~kjm/security/memo/2006/01.html#20060125_scp

tun(4)のサポートなんて後でイイから、さっさといろんなバグ潰した4.3を
出せってば :-)
1週間後に出すぞってメールで流してから何週間経っているんだと小一時間(ry
0773名無しさん@お腹いっぱい。2006/01/25(水) 22:01:50
>772
scp 'foo:bar*' .
とか便利に使ってたんだが、バグだったのか…
0774名無しさん@お腹いっぱい。2006/01/25(水) 23:58:08
>>773

そーいうことではなくて、記号や空白が名前の一部に入っているファイル
が問題視されているのですが。

たとえば
scp 'foo:bar*' .
であれば、foo というマシン上に
bar foo
bar*
といったファイルがあるとうまくいかないと。

そもそもが、
http://www.redhat.com/archives/fedora-announce-list/2006-January/msg00062.html
には
local to local and remote to remote copy with scp
と書いてあるわけで、
foo という「リモートマシン」から「ローカル」
という時点で、既に今回の対象外な気がしますが。
0775名無しさん@お腹いっぱい。2006/01/26(木) 01:45:25
>774
OpenSSH 情報の http://www.unixuser.org/%7Eharuyama/security/openssh/20060125.html

> system()関数を用いているためにリモートホストでもシェルによるコマンドの解釈が行われます。
> このため適当に細工を施されたファイル名をコピーすると、リモートホストでユーザの権限でコマンドが
> 実行されます。

なんて書いてあって、リモート側でsystem()関数によるファイル名展開しないように
対策されるのかと勘違いしてました。
0776名無しさん@お腹いっぱい。2006/01/26(木) 13:51:52
>>771
> あるIPアドレスからの接続はパスワード認証と公開鍵認証を許可して、それ以外のIPアドレスからの
> 接続は公開鍵認証のみ許可をする、といった感じの設定は出来ますか?

OpenSSH だと config file を変えて sshd 二つ上げとくしかないん
じゃなかろか。

ちなみに $sh.com 版なら HostSpecificConfigって機能を使うと sshd
一つで client host 毎に認証方式を変えることが可能。
0777名無しさん@お腹いっぱい。2006/01/26(木) 15:53:09
そだねえ。片方をポート10022とかに上げといて、
ソースアドレスによってはそちらにリダイレクトするようにしたら、
sshdが2つなのをユーザに意識させずに切り替えることもできそう。
pfなら

rdr on fxp0 proto tcp from <allow_password_address> to self port ssh -> $myaddr port 10022

とかになるのかな。

07787712006/01/26(木) 20:41:25
>>776-777
前の代のサーバはssh.com版を使ってたみたいで、HostSpecificConfig
を使って上記のような設定をしていたので、なんとかOpenSSHで
出来ないものかな、と思いましたが、2つ立ち上げるしかないんですね。
ありがとうございました。
0779春山征吾 ◆unIxUSernc 2006/01/26(木) 21:15:43
>>775
間違った記述をしていたので修正しました。
07807732006/01/28(土) 04:18:01
>774

問題の本質は
> シェルによるファイル名の解釈が2度おこなわれる
事なので、local-to-localやremote-to-remoteのコピーだけの問題じゃない気がしてきた。

remote-to-local、local-to-remote でも、localでのシェルによる解釈、
remoteでのscp起動の時にもシェルを経由するわけだし。

その意味で、OpenSSH 情報の元の記述は的外れでなかった気がしてきた。

なわけで、今回の修正だけではまずいんじゃないかなあ。
0781春山征吾 ◆unIxUSernc 2006/01/28(土) 09:07:30
>>780
パッチをみたところ、local-to-localとremote-to-remoteでの処理での
system()が置き換えられていました。
scp.cのそれ以外の部分ではsystem()は使われていません。

OpenSSH情報の記述はさらに直します。
07827732006/01/28(土) 21:06:24

>781
system()を使ってなくてもやばいんじゃないかって事です。
0783春山征吾 ◆unIxUSernc 2006/01/29(日) 01:24:30
ためしてみたところ、
% scp remote:\;/usr/bin/yes .
とすると
remoteで/usr/bin/yes が起動しました。
0784春山征吾 ◆unIxUSernc 2006/01/29(日) 01:33:08
% scp remote:\;/bin/sleep\ 1000 .
なんてのもいけますね。
0785春山征吾 ◆unIxUSernc 2006/01/29(日) 01:40:59
local-to-remoteでも
% scp foo remote:.\;/bin/sleep\ 1000
としてコマンドを実行できました。

local-to-localやremote-to-remoteと同様の問題があると考えていいように思えます。
明日朝から用事があるので一旦終了します。
0786春山征吾 ◆unIxUSernc 2006/01/29(日) 17:22:47
rsyncでも
% rsync foo remote:.\;sleep\ 1000

% rsync remote:foo\;sleep\ 1000 .
でremoteでのコマンド実行ができました。

ファイル転送においてもリモートでコマンドを実行する枠組を利用している以上
利用者が気をつけるしかないかもしれませんね。
0787名無しさん@お腹いっぱい。2006/01/29(日) 17:55:02
sshdはコマンドを実行するときsh -cで実行しているけど、shを使
わずに直接実行してほしい。shを使いたかったら明示的に書けばい
いだけ。

参考
http://pc8.2ch.net/test/read.cgi/unix/1131026501/984
07887732006/01/30(月) 01:08:35
OpenSSH情報では
> local-to-localやremote-to-remoteとは異なり実際のファイルのコピーによって
> コマンドが実行されるわけではありません。
と修正されてたけど、
% ls
remote:;/usr/bin/yes
% scp * foo
とか。

% ls
remote:*
これも意図しないファイルをコピーされてしまうような。

OpenSSH FAQ 2.13とか、ほっといてはいけなかったのかな。

>787
確かにその通りだと思うんだが、変更したらSSHのRFCと矛盾しないかな?
0789名無しさん@お腹いっぱい。2006/01/30(月) 01:35:38
>>787
参考が読めない
おれにも●売ってくれよ。10円で。
0790名無しさん@お腹いっぱい。2006/01/30(月) 01:37:01
>scp 'foo:bar*' .
は今後使えなくなるの?
0791名無しさん@お腹いっぱい。2006/01/30(月) 02:20:09
>>788
> % ls
> remote:;/usr/bin/yes
これは無理w
> % ls
> remote:*
これは仕様上仕方ないんじゃないか。
$ scp * .
ssh: remote: Name or service not known
0792名無しさん@お腹いっぱい。2006/01/30(月) 02:33:14
>>789

984 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2006/01/20(金) 22:59:14
スレ違いだが、

sshは引数をスペースを間に入れて結合した文字列をsshdに送る。
sshdは
argv[0] = shell
argv[1] = "-c"
argv[2] = 送られた文字列
のように実行する。
なので'1 2 3'というファイルを指定するためには
ssh localhost touch "'1 2 3'"
のように''をつける必要がある。

シェルを経由して実行する場合は引数(の数と内容)を保ったまま渡
すのは無理なのかもしれんが。
07937732006/01/30(月) 02:35:42
>791
確かにこのままだと駄目だった。
が、path通っているのであれば、こっち
> % ls
> remote:;yes
だったら。
0794春山征吾 ◆unIxUSernc 2006/01/30(月) 09:14:19
>>793
% ls
remote:;yes
% scp * foo

でremoteでyesが実行されますね。
OpenSSH情報の記述を訂正します。
0795名無しさん@お腹いっぱい。2006/01/30(月) 10:32:33
>>794
> % scp * foo
hostname:pathname の形式で指定する以上、たぶんどうしようもない。
scp ./* foo:bar/
なら問題ない。
07967732006/01/31(火) 01:22:49
>795
リモートでコマンド実行の方は危険な記号をエスケープするなり
して対処するのかなあ。

で、hostname:pathname の hostname: の部分を処理する前に、
hostname:pathname がファイルとして存在しているか確認して、
存在していた場合、ユーザーに確認 or エラー吐いて失敗とか。
# -B オプションとか付いてたら確認せず実行とか。

とにかく、意図したファイルのコピーが失敗するだけならともかく、
意図しないファイルのコピーが実行されてしまうのは避けた方が無難だと
思う。
07977732006/01/31(火) 01:37:42
>791
>> % ls
>> remote:;/usr/bin/yes
>これは無理w
こんなの思い付いた。
% echo */*/*/*
remote:;/usr/bin/yes
0798名無しさん@お腹いっぱい。2006/02/01(水) 17:51:27
PuTTYgen使って公開鍵作るとき[Public key for pasting into OpenSSH authorized_keys2 file]欄の
文字列をコピーしてメモ帳に貼り付ける、と紹介してるサイトがあるけど
【Save Public key】ボタンを押して保存じゃ駄目ですか?
わざわざ面倒なことする理由って何ですか?
0799名無しさん@お腹いっぱい。2006/02/01(水) 17:58:44
ボタンが無い時代に書かれた記事の孫引きだからだろ
0800名無しさん@お腹いっぱい。2006/02/01(水) 19:57:54
>>798
形式が違う。
0801名無しさん@お腹いっぱい。2006/02/01(水) 23:41:18
OpenSSH 4.3/4.3p1 リリース
0802名無しさん@お腹いっぱい。2006/02/02(木) 01:48:07
>798
保存した物はssh-keygen -X -fで変換しないと~/.ssh/authorized_keysの形式に成らないよね
08037982006/02/02(木) 02:03:23
>>799
自分もそうじゃないかと思いました。
ボタンがあるのにコピペするのは昔の名残なのかと。
しかしどうしても気になり、質問してしまいました。

>>800>>802
!!、そういうことなんですか!ありがとうございます!!
モヤモヤが晴れました。御三方ありがとうございました。!
0804名無しさん@お腹いっぱい。2006/02/02(木) 06:05:35
>>801
4.3(p1) キター  ヽ(゚∀゚)ノ
0805春山征吾 ◆unIxUSernc 2006/02/03(金) 18:57:02
4.3p1はconfigureまわりに問題があるので、4.3p2がじきにでるようですね。

>>773- 以降で議論したscp の local-to-remote, remote-to-local のコマンド挿入の
問題について、セキュリティの問題として openssh@openssh.com に連絡しようと思います。
(なぜ openssh@openssh.com かは ttp://www.openssh.com/report.html を参照)
反対意見がなければ、日曜か月曜に送ります。

メールの内容は長いので
ttp://unixuser.org/%7Eharuyama/security/openssh/tmp/openssh_scp_command_injection.txt
におきました。
08067732006/02/03(金) 22:17:07
>788
> % ls
> remote:*
> これも意図しないファイルをコピーされてしまうような。
こっちの報告はどうしましょう?

>791
> これは仕様上仕方ないんじゃないか。
ってのも分かるのですが、
さらに
% ls
foo@remote:*
とかにして、
foo@remote% ls -l
rwsrwsrwx 1 foo foo 100 2006-02-03 03:55 bar
とかが
% scp * .
とかでコピーされちゃうとまずそうなんですけど。
実験したら -p オプション付けなくてもsuid bitコピーされちゃいましたし。
# umask の設定でsuid bit無効化出来ましたっけ?

後、
% ls
-p foo
とかで、予期しないオプションをremoteのscpに与える攻撃とか思い付いたのですが。
# 組み合わせや設定次第でやばげな事が出来そうです。
# remote:-Sfoo とかでremote-to-remoteになったときとか。

対策するなら796で書いた事ぐらい?
08077732006/02/03(金) 22:25:54
rsyncの開発元にも別に送った方がいいかもしれません。
# scp や rsync の実装の問題でしょうし。
0808春山征吾 ◆unIxUSernc 2006/02/03(金) 22:47:52
>>806-807 に対応して
ttp://unixuser.org/%7Eharuyama/security/openssh/tmp/openssh_scp_command_injection.txt
を上書きしました。

・Subjectを scp/rsync Command Line Shell Command Injection in the case of local-to-remote and remote-to-local copies & scp/rsync user-unintended file copy with a malicious filename に。

・rsync-bugs@samba.orgにも送るという文章を追加

・次の文章を追加
In addition, This example (using a malicious filename)
----------
% ls
remote:*
% scp * .
(or rsync -e ssh * .)
----------
causes an user-unintended file copy.
■ このスレッドは過去ログ倉庫に格納されています