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

SSH その7

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

過去ログ
 Part1:http://pc.2ch.net/unix/kako/976/976497035.html
 Part2:http://pc.2ch.net/unix/kako/1028/10281/1028157825.html
 Part3:http://pc5.2ch.net/unix/kako/1058/10582/1058202104.html
 Part4:http://pc8.2ch.net/test/read.cgi/unix/1102242908/
 Part5:http://pc11.2ch.net/test/read.cgi/unix/1145484540/
 Part6:http://pc12.2ch.net/test/read.cgi/unix/1202782840/
0484名無しさん@お腹いっぱい。2011/10/06(木) 02:11:06.54
入門OpenSSH
http://www.unixuser.org/~euske/doc/openssh/book/index.html
0485名無しさん@お腹いっぱい。2011/10/14(金) 01:06:13.11
>>483
クライアントで秘密鍵と公開鍵を作って
サーバには公開鍵を登録する
と思ってたけど違うの?
0486名無しさん@お腹いっぱい。2011/10/14(金) 01:42:46.67
>>485
それは認証用の鍵でしょ なんの話をしてるんだよ
0487名無しさん@お腹いっぱい。2011/10/14(金) 02:17:54.44
>>485
ホスト鍵の話だよ。
sshd_config で言う HostKey の話。
0488名無しさん@お腹いっぱい。2011/10/14(金) 08:54:42.74
秘密鍵を使用する以外の別の場所で、それを作ってはいけないという決まりはない。
0489名無しさん@お腹いっぱい。2011/10/14(金) 09:29:29.23
ホスト鍵って何に使うの?
0490名無しさん@お腹いっぱい。2011/10/14(金) 09:53:01.24
>>488
いきなり何を言い出したんだ?
0491名無しさん@お腹いっぱい。2011/10/14(金) 10:30:19.60
>>488
作ってはいけないという決まりはないが、
作るべきではない。
0492名無しさん@お腹いっぱい。2011/10/14(金) 10:33:48.02
>>489
http://www.unixuser.org/~euske/doc/openssh/book/chap3.html
0493名無しさん@お腹いっぱい。2011/10/14(金) 10:48:12.08
ホスト鍵が何かわかってないってことは、
初回ログイン時に表示される fingerprint が何かわかってないってこと。
何も考えずに yes って打ってるでしょ。
それ危険だよ。
0494名無しさん@お腹いっぱい。2011/10/14(金) 11:06:06.49
サーバのIPがコロコロ変わるのでknown_hostsは毎回削除してたわ
0495名無しさん@お腹いっぱい。2011/10/14(金) 11:21:58.23
わかっててやってるならいいけどさ。
0496名無しさん@お腹いっぱい。2011/10/14(金) 21:45:45.81
ssh-agent コマンド
ってやってssh-agentを起動する時、
普通に考えると「コマンド」はssh-agentの子プロセスになると思いがちだけど、
実際にはssh-agent内部でfork()した後、その親プロセス側が「コマンド」をexec()する。

「コマンド」が親で、ssh-agentが子プロセスになる。
で、このままでは「コマンド」の終了をwait()やSIGCHLDとかで検出できないので、
ssh-agentはわざわざ10秒おきに「コマンド」が終了したかどうかチェックしてる。

何故わざわざ親と子を逆にして面倒なことをしているのでしょう?
何か理由があるのでしょうか?
0497名無しさん@お腹いっぱい。2011/10/14(金) 23:15:25.03
呼び出し側がコマンドを子プロセス扱いできるようにってことかな?
0498名無しさん@お腹いっぱい。2011/10/15(土) 02:02:05.36
フジテレビデモ
花王デモ
要チェック
0499名無しさん@お腹いっぱい。2011/10/15(土) 11:32:51.63
親プロセスがsh以外の(変な)プログラムだと混乱するのがあるんじゃないかな。
0500名無しさん@お腹いっぱい。2011/10/15(土) 11:48:39.01
>>499
は?祖父母プロセスのことをいいたいの?想像できん・・・
0501名無しさん@お腹いっぱい。2011/10/15(土) 12:16:48.59
$ echo $$
19472
$ ssh-agent bash -c 'echo $PPID'
19472
$ ssh-agent ssh-agent bash -c 'echo $PPID'
19472
$ ssh-agent ssh-agent ssh-agent bash -c 'echo $PPID'
19472
0502名無しさん@お腹いっぱい。2011/10/15(土) 12:26:07.78
10秒おきにポーリングしてプロセス終了を待つって無駄だよな。
実際ssh-agent終了直後、最大10秒間は /tmp/ssh-XXXXX が残ってしまう。
もっと効率的なアルゴリズムにできないのか?
0503名無しさん@お腹いっぱい。2011/10/15(土) 12:37:43.36
>>496
しかもgetppid(2)じゃなくてkill(2)でチェックしてるんだな。10秒以内に同じ
PIDのプロセスが作られると終了しない、と。

コマンド指定しない時のforkと無理やり共通化したかっただけとか・・・?
0504名無しさん@お腹いっぱい。2011/10/15(土) 14:05:20.20
コマンド付きだろうとなかろうと本来はssh-addやsshのためのソケットサーバ。
起動してしまえば子孫関係のないクライアントへも区別なくサービスできるし、
コマンド指定機能はオマケ機能扱いてことじゃね?
0505名無しさん@お腹いっぱい。2011/10/17(月) 19:03:01.30
>479
それを見たところで分かるとは限らないという意味であえて書いてたのだが…

$ grep -i ^HostKey /etc/ssh/sshd_config
$ ls /etc/ssh
moduli ssh_host_ecdsa_key ssh_host_rsa_key
ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key.pub
ssh_host_dsa_key ssh_host_key sshd_config
ssh_host_dsa_key.pub ssh_host_key.pub
$

こんなとこ
0506名無しさん@お腹いっぱい。2011/10/17(月) 19:12:40.69
で、どうしたいの。
0507名無しさん@お腹いっぱい。2011/10/17(月) 20:16:45.13
>>506
>>505に対して書いてるのか?なら
>>476>>475の疑問を解消してくれるのを待ってる
0508名無しさん@お腹いっぱい。2011/10/17(月) 20:28:43.50
grep結果にひっかからないということは/etc/sshのファイルが使われている保証はないということ?
0509名無しさん@お腹いっぱい。2011/10/17(月) 20:43:02.38
>>505
ssh_host_ecdsa_key
ssh_host_rsa_key
ssh_host_dsa_key
ssh_host_key
がホスト鍵だな

次の質問ある?
0510名無しさん@お腹いっぱい。2011/10/17(月) 22:58:06.50
>>508
/usr/sbin/sshd -T で確認すればいいんじゃない?
0511名無しさん@お腹いっぱい。2011/10/17(月) 23:04:38.51
これからはセキュリティックの時代なので
ログインシェルをsshに変更したいんですが、
chsh -s /usr/bin/ssh
のプロンプトを発行するとエラーになりました。
何か設定が足りないんでしょうか?
0512名無しさん@お腹いっぱい。2011/10/17(月) 23:17:07.67
そういうネタはいいです。
0513名無しさん@お腹いっぱい。2011/10/17(月) 23:20:04.38
# echo /usr/bin/ssh >> /etc/shells
0514名無しさん@お腹いっぱい。2011/10/17(月) 23:36:02.81
>>510
sshd: illegal option -- T
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
usage: sshd [-46Ddeiqt] [-b bits] [-f config_file] [-g login_grace_time]
[-h host_key_file] [-k key_gen_time] [-o option] [-p port] [-u len]
0515名無しさん@お腹いっぱい。2011/10/17(月) 23:39:22.21
ケチつけるだけじゃなく答え教えてあげたら。
0516名無しさん@お腹いっぱい。2011/10/19(水) 08:11:00.41
カラー表示の非対応SSHクライアントで端末タイプにvt100等を使用すると
カラー情報をクライアントが認識できないため、カラーになる文字列の前後に余計な文字列が付与されますが、
このカラー情報のパケットのルールについて記載されているサイト等は無いでしょうか?

端末タイプのdumbを認識しないsshdの場合、手動で取り除きたいと考えています。
0517名無しさん@お腹いっぱい。2011/10/19(水) 11:50:47.19
自己解決レス。

ANSIカラーコードという体系があったのですね。
0518名無しさん@お腹いっぱい。2011/10/19(水) 13:27:19.47
っていうか vt100 はカラー対応じゃないし…

そもそも TERM をみてカラー対応じゃなかったら
そのエスケープシーケンスは吐くべきじゃないわけだが
0519名無しさん@お腹いっぱい。2011/10/19(水) 14:01:20.68
TERMがvt100じゃなかったってオチでは?
0520名無しさん@お腹いっぱい。2011/10/19(水) 14:31:14.74
エスパーするとGNU lsはTERMを認識せずにカラー表示する。
alias ls='ls --color' されてたりする。

TERMをちゃんと認識するには ncursesなり termcapなりのライブラリとのリンクが必要。
lsのような基本コマンドで ncursesとかに依存するのは大げさだから、
TERM無視してエスケープシーケンス出力する今のやりかたが妥当。
0521名無しさん@お腹いっぱい。2011/10/19(水) 15:19:07.26
普通の標準出力の文字列内にエスケープシーケンスがあるべきじゃないだろうし、
5d(だっけ)と直近のmの間を取ってやればいいんじゃないか?
0522名無しさん@お腹いっぱい。2011/10/30(日) 23:22:31.89
基本的には公開鍵認証、
特定のアドレス範囲内からの接続であればパスワード認証も可。
という設定にするにはどうすればいいですか?

というのも一部のクライアントが
公開鍵認証に対応していないもので……。
0523名無しさん@お腹いっぱい。2011/10/31(月) 03:55:48.52
>>522
>>462-464
0524名無しさん@お腹いっぱい。2011/10/31(月) 08:08:26.03
公開鍵認証に対応してないsshクライアントってなんだよ。
そんなのsshクライアントじゃない無視してもいい。
0525名無しさん@お腹いっぱい。2011/10/31(月) 08:14:24.55
すみませんが詳しい方のみ回答をお願いします
0526名無しさん@お腹いっぱい。2011/10/31(月) 08:34:45.02
>>525
sshd2個あげれば?
ふつうは524(クライアントソフト入れ替え)が正しい
0527名無しさん@お腹いっぱい。2011/10/31(月) 08:37:38.84
>>522
/etc/ssh/sshd_configで
PasswordAuthentication no

Match 192.168.0.0/24
PasswordAuthentication yes

こんな感じかな。
コピペせずに
ttp://www.unixuser.org/~euske/doc/openssh/jman/sshd_config.html
見ながら設定を推奨します。
てゆか>>523で正解。

>>524
俺も興味あるなw
「一部の」ってことはそれなりに数あるんだろうけど…なんじゃそりゃとしか。
0528名無しさん@お腹いっぱい。2011/10/31(月) 09:47:02.51
クライアント側アプリではなく
「(公開鍵の概念を理解できない)顧客」
だったりしてな…
0529名無しさん@お腹いっぱい。2011/10/31(月) 09:51:21.95
そういうクライアントは辞書攻撃でやられるパスワードをつける可能性が大だから、
やはり無視するのが正しい。
0530名無しさん@お腹いっぱい。2011/10/31(月) 12:00:59.75
俺は >>528 の解釈が当たりだと思った

だったら man sshd_configしてMatchでAddressとUserとの組合せの書式を
確認させないといけないね。本当にやりたいことに近いのはIPアドレスで
判別じゃなくて、IPアドレス&ユーザ名で判別だろうからね。

Match User alice,bob Address 192.168.0.0/16,10.0.0.0/8
PasswordAuthentication yes
PermitEmptyPasswords no

本当にやりたいことは「こんなクソみたいな設定作業を低コストでどっか
にほっぽり出したうえで責任回避するにはどうしたらいいか」って問題の
解決だろうが、そんなもんスレ違いw
0531名無しさん@お腹いっぱい。2011/11/02(水) 17:58:33.74
sshでUDPをポートフォワードする方法教えて。man見てもよくわからんね
0532名無しさん@お腹いっぱい。2011/11/02(水) 18:02:28.57
>>531
ググれカス
0533名無しさん@お腹いっぱい。2011/11/02(水) 18:05:33.59
>>531
SSHだけじゃできない、ってのはわかってるかな。
05345312011/11/02(水) 18:54:46.54
もちろん、わかってません><
0535名無しさん@お腹いっぱい。2011/11/02(水) 19:54:37.43
じゃあnetcatも使ってなんとかしとけ
0536名無しさん@お腹いっぱい。2011/11/02(水) 20:34:27.86
にゃあ
0537名無しさん@お腹いっぱい。2011/11/02(水) 21:26:01.91
DeleGateのUDPrelayとかかます
http://i-red.info/docs/Manual.htm#serv_udprelay
0538 忍法帖【Lv=40,xxxPT】 2011/11/07(月) 05:15:04.90
http overでssh接続することはできませんか?
0539名無しさん@お腹いっぱい。2011/11/07(月) 10:52:52.94
connect.cとかcorkscrewとかを使えばできる。
0540名無しさん@お腹いっぱい。2011/11/08(火) 18:42:53.73
sshdですが、2つのポートで待ち受けることはできるのでしょうか?
0541名無しさん@お腹いっぱい。2011/11/08(火) 18:56:06.14
>>540
http://www.jp.freebsd.org/cgi/mroff.cgi?sect=5&cmd=&lc=1&subdir=man&dir=jpman-5.4.0%2Fman&subdir=man&man=sshd_config
Port (ポート番号)
sshd が接続を受けつける (listen する) ポート番号を指定します。デ
フォルトは 22 です。複数指定することも可能です。 ListenAddress の
項も参照してください。

0542名無しさん@お腹いっぱい。2011/11/08(火) 18:58:30.21
http://www.openssh.org/manual.html
0543名無しさん@お腹いっぱい。2011/11/08(火) 19:09:32.46
>>542
バーカ
0544名無しさん@お腹いっぱい。2011/11/08(火) 19:20:13.84
罵倒する理由はなに?
0545名無しさん@お腹いっぱい。2011/11/08(火) 20:33:45.19
>>544
>>541の2分後に堂々と>>542を書き込んでくるその神経に敬意を表して
0546名無しさん@お腹いっぱい。2011/11/08(火) 21:10:27.53
狭量
0547名無しさん@お腹いっぱい。2011/11/08(火) 21:17:59.43
2分後w
0548名無しさん@お腹いっぱい。2011/11/08(火) 21:28:40.96
>>542>>543 の狭量比べが始まりました
果たして勝者は!?
05495422011/11/08(火) 21:34:40.77
おれは別にどうでもいいよ。
0550名無しさん@お腹いっぱい。2011/11/09(水) 04:40:41.95
早速の変身ありがとうございます。
2つのポートを使いたいというのは、ファイアウォール内では問題ないのですが
外からはポート80以外接続できないようになっています。
apacheは動いていないので、80番ポートを通してSSH接続できないかと
思案していたところでございました。
0551名無しさん@お腹いっぱい。2011/11/09(水) 05:04:47.19
>>550
80も狙われやすいと思うけど。

TCP porrt 53とか開いてないのかな?
0552名無しさん@お腹いっぱい。2011/11/09(水) 09:16:59.92
>>551
狙われてもいいじゃん。
sshdの方で鍵認証のみにするなり防御の方法はあるし、
L4で狙われにくいポートを選ぶっていう小細工したって知れてるでしょ。
0553名無しさん@お腹いっぱい。2011/11/09(水) 09:21:38.93
ところが公開鍵認証に対応していないクライアントなんですよ。
0554名無しさん@お腹いっぱい。2011/11/09(水) 09:41:06.42
そのネタはもういいです。
0555名無しさん@お腹いっぱい。2011/11/09(水) 10:33:42.19
ポート変えるのは防御ってより
ウザいログを減らすためだな。
0556名無しさん@お腹いっぱい。2011/11/09(水) 13:46:38.52
まあ80番にSSHアタックしてこんだろ
0557名無しさん@お腹いっぱい。2011/11/09(水) 14:11:59.34
ないとは言いきれない。
0558名無しさん@お腹いっぱい。2011/11/09(水) 14:23:07.22
sshは応答で簡単にわかるから、sshアタックあってもおかしくない

固定IPからのみのパケットフィルタリングとか出来ると
安全、安心。
0559名無しさん@お腹いっぱい。2011/11/09(水) 17:47:20.05
鍵のみ+denyhostでいいんじゃ?
0560名無しさん@お腹いっぱい。2011/12/24(土) 01:40:49.43
SignificantSukebeHeitai
0561名無しさん@お腹いっぱい。2012/01/10(火) 15:29:17.25
OpenSSL 1.0.0f and 0.9.8s
https://www.openssl.org/news/secadv_20120104.txt
セキュリティフィクスのみかな
05625612012/01/10(火) 15:56:25.99
あ,OpenSSHスレだった
ごめん
0563名無しさん@お腹いっぱい。2012/01/23(月) 19:44:03.60
androidのconnectbotでssh port forwardしたいけどできねー。
他にクライアント無いですか。
0564名無しさん@お腹いっぱい。2012/01/23(月) 21:51:14.28
>>563
stone じゃだめかいな。
0565名無しさん@お腹いっぱい。2012/01/23(月) 23:15:51.72
Connectbotって、sshでパスワード認証成功させて、
アンドロイドVNCを起動させると、裏にまわったConnectbotが落ちちゃう(killされる?)みたいなんですよね。
でも、毎回そうなる訳じゃないから不思議...
やっぱりスレ違いかな。
0566名無しさん@お腹いっぱい。2012/01/23(月) 23:33:59.68
SSHTunnelとAndroid VNCの組み合わせで使ってる
0567名無しさん@お腹いっぱい。2012/01/23(月) 23:34:22.51
犬板にこんなスレできてるから聞いてみるといいかも
Android総合
http://engawa.2ch.net/test/read.cgi/linux/1327118733/
0568名無しさん@お腹いっぱい。2012/01/24(火) 00:03:27.30
Root requiredなのを使えば鉄板なのはわかるんだけどなぁ。
でもnative binaryなAndroidアプリの話ならスレ違いってことはないか。
0569名無しさん@お腹いっぱい。2012/01/24(火) 08:43:57.26
SSHTunnelは特権なくてもVNC程度なら使えるはずだけど
0570名無しさん@お腹いっぱい。2012/01/26(木) 16:23:27.70
普通にSSHTunnelで出来ましたが、一回の接続につき、トンネルを一本しか掘れないんですね。
それだけが玉に傷。
0571名無しさん@お腹いっぱい。2012/01/29(日) 14:02:58.50
ここに書けばいいのかよくわからないけど
ssh -Yでフォワードしてfirefoxとかはちゃんと動くんだけど
javaのアプリ(V2C)が空白になって描画されないんだよね
はじめは-Xでやってたんだけどググったら-Yでやれみたいなことが書いてあって試したんだけど変わらず
なにか心当たりある人いますか?
0572名無しさん@お腹いっぱい。2012/01/29(日) 22:45:28.79
ごめんなさい自己解決しました
awesomeの問題?でwmname LG3Dを実行してから起動すると正常に描画されました
0573名無しさん@お腹いっぱい。2012/02/09(木) 00:27:53.62
nohupコマンドについて質問です。
ログアウトしてもジョブが継続されるとのことですが、
ログアウトというのはSSHからログアウトという意味でしょうか?
それともSSHだけでなくターミナルを起動しているPCの電源を落としてもジョブは継続するのでしょうか?
0574名無しさん@お腹いっぱい。2012/02/09(木) 00:56:26.20
>>573
はい
0575名無しさん@お腹いっぱい。2012/02/09(木) 01:54:30.41
両方。
0576名無しさん@お腹いっぱい。2012/02/09(木) 02:01:10.50
>>573-574
ありがとうございます
0577名無しさん@お腹いっぱい。2012/02/09(木) 02:01:39.64
>>575
ありがとうございます
0578名無しさん@お腹いっぱい。2012/02/16(木) 18:14:49.38
すみません、質問です。
昨日OpenSSH(5.9_p1-r3)サーバを再インストール(selinux,pam環境下)したところ
クライアントからrootでは接続する場合ではセッションを確立でき、
当然セッションを確立した状態からならほかの一般ユーザにログインもできるのですが
クライアントから直接一般ユーザでセッションを確立しようとすると
OpenSSH_5.4p1クライアントではConnection to (SERVER) closed by remote hostというエラーが発生し
OpenSSH_5.9p1(サーバ)から接続してもWrite failed: Broken pipeと表示されてセッションを確立できません
鍵の再作成とknown_hostの初期化, hosts.allo/denyなどは設定したのですが解決のめどはありません。
どなたかわかる方いらっしゃるでしょうか
0579名無しさん@お腹いっぱい。2012/02/17(金) 03:51:00.06
CentOS6でほぼデフォルト状態で使用しています。
sshを使用してポート3306(DB)に接続した場合、そのことがログ/var/log/*に記録されますか?
それとも、sshでログインがあったことしか残りませんか?
0580名無しさん@お腹いっぱい。2012/02/17(金) 07:47:06.09
やってみりゃいいじゃん。
0581名無しさん@お腹いっぱい。2012/02/17(金) 08:11:16.92
きっと、攻撃する方でログは見れないんだろ。
0582名無しさん@お腹いっぱい。2012/02/17(金) 08:15:44.70
同じ環境作ればいい。
0583名無しさん@お腹いっぱい。2012/02/17(金) 09:12:34.88
対象の環境は侵入して調べなきゃ再現できないじゃないか。
0584名無しさん@お腹いっぱい。2012/02/17(金) 09:58:20.38
そこはもう済んでるから
>>579みたいな質問になったんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています