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

SSH その3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
SSHに関する情報交換のスレッドです。

FAQ、リンク集は >>2-5 あたり。

前スレ: http://pc.2ch.net/test/read.cgi/unix/1028157825/
前々スレ: http://pc.2ch.net/unix/kako/976/976497035.html
0663名無しさん@お腹いっぱい。NGNG
1. USBメモリ
2. scp/sftp (パスワード・経路は最低限ではあるが暗号化される)
0664名無しさん@お腹いっぱい。NGNG
>>662
そのLAN上のPC上でopensslでキーペア作って公開鍵をSSHの鍵があるところまで送る、
SSHの鍵を公開鍵で暗号化してLAN上のPCに送る。復号する。以上
0665名無しさん@お腹いっぱい。NGNG
sshの秘密鍵を移動する必要はないでそ?
公開鍵は平文でも問題ないし。
0666名無しさん@お腹いっぱい。NGNG
>>656
ダメージとか
0667名無しさん@お腹いっぱい。NGNG
>>665
公開鍵はどうやって移動する?
0668名無しさん@お腹いっぱい。NGNG
>>667
まだ鯖を立てようとしてる段階なのでわからないです。
http://fedora.zive.net/openssh.shtml
を参考に鯖を立てようとしています。
秘密鍵はどういう風に使えばいいのかいまいち理解できておりません(汗
0669名無しさん@お腹いっぱい。NGNG
(汗
(汗
(汗
(汗
(汗
(汗
(汗
(汗
0670名無しさん@お腹いっぱい。NGNG
>>667
端末間でコピペ
メール
2chに書く
0671名無しさん@お腹いっぱい。NGNG
歌う
0672名無しさん@お腹いっぱい。NGNG
>>667 はネタでしょ。
0673名無しさん@お腹いっぱい。NGNG
公開鍵移すのにパスワード平文で流したりはするなよ。
0674名無しさん@お腹いっぱい。NGNG
>>673
パスワード認証だと平文で流れると未だに勘違いしてる馬鹿ハケーン
0675名無しさん@お腹いっぱい。NGNG
>>673
は?公開鍵って別にとられてもいいんだけどネタ?
0676名無しさん@お腹いっぱい。NGNG
>>674
そのくらいはわかっとるよ。
TELNET とか FTP で移すなよ、と。

>>675
パスワードって書いてあるの読めなかった?
0677名無しさん@お腹いっぱい。NGNG
>>676
(゚Д゚)ハァ?
0678名無しさん@お腹いっぱい。NGNG
telnet/ftpでログインするときにパスワードが平文で流れる
ってことが言いたいんだろ。

一発目の公開鍵をコピーするときはsshdをパスワード認証にしておいて
コピー後に鍵交換認証に変更する、でいいんじゃない。
0679名無しさん@お腹いっぱい。NGNG
>>676
言い訳苦しすぎ プギャラヒヒ
0680名無しさん@お腹いっぱい。NGNG
インストールしてから最低限すればいいコマンド教えてください
0681名無しさん@お腹いっぱい。NGNG
>>680 へお約束レスをどうぞ。
0682名無しさん@お腹いっぱい。NGNG
シェルスクリプトからSCP使ってサーバへデータコピーしてんだ
が、転送中にサーバが死んでもコマンド終了しません。
ボスケテ〜
0683名無しさん@お腹いっぱい。NGNG
>>680

>>681お言葉に甘えまして・・
まずrootでログインして「rm -rf /」のコマンドを実行してください。
0684名無しさん@お腹いっぱい。NGNG
PermitRootLogin = no じゃないのか。
0685名無しさん@お腹いっぱい。NGNG
>>683
Linuxだったら
shred /dev/hda
とかもいいよね。
0686名無しさん@お腹いっぱい。NGNG
rootでログイン許可しないほうが(・∀・)イイ!!って書いてるサイトあるけど
LAN以外のPCからアクセスできないようにしてても危ないの??
0687名無しさん@お腹いっぱい。NGNG
>>686
許可してるより許可しないほうが比較的(・∀・)イイ!!のは議論するまでもない。
どうしてもしなきゃならんようなものでもないし。
0688名無しさん@お腹いっぱい。NGNG
rootを許可してもパスワードと秘密鍵がなければログインできないからいいんじゃない??
こんな考え方の漏れは甘い???
0689名無しさん@お腹いっぱい。NGNG
root でいきなり入ると誰がアクセスしたの分からなくなるだろ。

0690名無しさん@お腹いっぱい。NGNG
漏れしか使用してないわけで。
0691名無しさん@お腹いっぱい。NGNG
>>686 >>688 >>690
好きにすりゃええやん。
0692名無しさん@お腹いっぱい。NGNG
LAN上からしか利用しないならTELNETでもいいよな??
IPで制限しちゃえばいいことだし・・・
0693名無しさん@お腹いっぱい。NGNG
そのマシンへのアクセスはLANからしかできないとしても、
そのLANに繋がっている他のマシンもそうとは限らないわけで
0694名無しさん@お腹いっぱい。NGNG
こうして踏み台が作られていくのであった
0695名無しさん@お腹いっぱい。NGNG
telnetだとパスワード毎回入力せなあかんから
LANでもログインには使わない。
いまとなっては23番ポート以外に使う方が多そう。
0696名無しさん@お腹いっぱい。NGNG
そういう問題じゃなくてなぜSSHじゃないといけないのか,
なぜtelnetは危険なのかその理由を考えれば自ずと答えは出るはずだが?
0697名無しさん@お腹いっぱい。NGNG
なんでこんなレベル低いの?
0698名無しさん@お腹いっぱい。NGNG
2chだから
0699名無しさん@お腹いっぱい。[NGNG
cron からrsyncで鯖の中身をバックアップ機に吸い上げたい、と。んで、

鯖の /etc/.../sshd_configでは PermitRootLogin forced-commands-only
にして、同じく鯖の /root/.ssh/authorized_keys2には
command="rsync --server --sender -bulogDtprz --delete . /var/www/" ssh-rsa AAA...
と書いておくと。

これでバックアップ機からの
# rsync -auzb -e ssh --exclude='*~' --delete saba.com:/var/www/ /var/www
は動く、と。それは良いのです。

が、/var/www以外のディレクトリも同様にrsyncできるようにしたいとすると、
authorized_keys2にはどうやっとけば良いんでしょうか?単に同じpub keyをこぴぺして
command="rsync --server --sender -bulogDtprz --delete . /var/ftp/" ssh-rsa AAA..
みたいのを追加したんだけどは駄目なんですわ。最初に書いた/var/wwwのほうしか動かない。

これって、
command="rsync --server --sender -bulogDtprz --delete . /" ssh-rsa AAA...
とでもしておいて、とりあえず全部rsyncできるようにしておいて、いらないものを除外するために
長ーーーい Excludeリストを使え、つうことですか?
0700名無しさん@お腹いっぱい。NGNG
シェルスクリプトをつかうとか
0701699NGNG
>>700 どうも。wrapperにしないと駄目みたいですね。
鯖 saba.comに/root/remote-rsyncとか適当な名前のファイルを作って、

#!/bin/sh
if echo $SSH_ORIGINAL_COMMAND|grep -e "^rsync " >/dev/null 2>&1; then
$SSH_ORIGINAL_COMMAND
else
echo "No access. Sorry."
fi

としておく。ほんで、同じく鯖の/root/.ssh/authorized_keys2のほうは、

command="/root/remote-rsync" ...key...

としておく。そうするとバックアップマシンのrootから

# rsync -auzb -e ssh --exclude='*~' --delete saba.com:/どこでも/ /どこでも

がめでたく実行可能になりますた。OpenSSHのこのあたりのdoc、えらいわかりにくくて
難儀しますた。
0702名無しさん@XEmacsNGNG
>>701
> # rsync -auzb -e ssh --exclude='*~' --delete saba.com:/どこでも/ /どこでも
>
> がめでたく実行可能になりますた。

うーん、たしかにそれはそうだろうけど、

> #!/bin/sh
> if echo $SSH_ORIGINAL_COMMAND|grep -e "^rsync " >/dev/null 2>&1; then
> $SSH_ORIGINAL_COMMAND
> else
> echo "No access. Sorry."
> fi

これだとたぶん逆方向の rsync もできると思うので、事実上何も制
限してないに等しい気がする。

素直に rsync server を使うのが吉では (873/tcp を開けるのがヤ
なら over ssh で rsync server 起動することもできる)。
0703名無しさん@お腹いっぱい。NGNG
>>702 御意。

$ rsync -auzb -e ssh --exclude='*~' --delete saba.com:/どこでも/ /どこでも

とローカルで起動すると、鯖で動くのは

$ rsync --server --sender -bulogDtprz --delete . /home2/どこでも/

だから、鯖上の/root/.ssh/authorized_keys2で

#!/bin/sh
if echo $SSH_ORIGINAL_COMMAND|grep -e "^rsync --server --sender " >/dev/null 2>&
1; then
$SSH_ORIGINAL_COMMAND
else
echo "No access. Sorry."
fi

とでもすれば良い。これで逆方向rsyncは不可になる。
0704名無しさん@XEmacsNGNG
>>703
> とでもすれば良い。これで逆方向rsyncは不可になる。

いや、まぁ、それはそうなんだけど、それは document 化されてい
ない現行 rsync の振舞に依存しているわけだし、吸い出し only だ
としてもなんでもかんでも吸い出されて構わんというわけでもなか
ろうし、かといってさらに script の中で吸い出し可の領域をチェッ
クするなどと言い出したら繁雑でどうしようもなかろうし、という
ことで、

>>702
> 素直に rsync server を使うのが吉では (873/tcp を開けるのがヤ
> なら over ssh で rsync server 起動することもできる)。

だと思うわけよ。
0705703NGNG
>>704 コメントありが豚。
man rsyncd.conf読みますた。たしかに
use chrootできたり、pathが指定できたり、
こっちのほうがが遥かに良いね。873/tcpは
開けたくないので、over ssh 逝きます。
0706名無しさん@お腹いっぱい。NGNG
Puttyが文字化けしていて困っています
日本語パッチはあたっていると思うのですが、
フォントの選択?が間違っているのかもしれません。

解決方法をご存知のかたよろしくお願いします
0707名無しさん@お腹いっぱい。NGNG
>>706
いまどきの文字化けの原因は、
フォントがサポートしていない文字セットを使ってる他に
期待している文字セットやエンコーディングとの相違があります。

接続先の環境をしらべてみてください。
Unix系OSなら
$ env | grep LANG
でわかるはずです。
そしてPuTTYの設定をすみからすみまで確認してください。

エスパーではないのでこれ以上はわかりません。
でもスレちがいの予感はします。
0708706NGNG
すみません、Putty自体が文字化けしています。(チェックボックスなど)
エクスプローラのような部分はきちんと表示されています。

0709名無しさん@お腹いっぱい。NGNG
予感的中
ttp://pc5.2ch.net/test/read.cgi/unix/1084686527/46-
0710706NGNG
>>709
ありがとうございました!!
0711名無しさん@お腹いっぱい。NGNG
>>611
rootはlogin許可しないだろう、普通。
0712名無しさん@お腹いっぱい。NGNG
>>711
ところがFedoraはデフォルトで許可な罠
0713名無しさん@お腹いっぱい。NGNG
SUSEもデフォルトで許可な罠
パスワードログインだって出来ちゃうよ
0714名無しさん@お腹いっぱい。NGNG
>>713
Debian も・・・
0715名無しさん@お腹いっぱい。NGNG
Linux って標準インストール(そういうものがあるのか知らんが)に ssh が入っているの?
入っているのに許可しまくりじゃ怖いな
0716名無しさん@お腹いっぱい。NGNG
>>715
Debian は、標準でインストールされるが、sshd をたちあげるかどうかは選べる。
Fedora は、標準でインストールされるが、sshd はデフォルトでは起動しない。
0717名無しさん@お腹いっぱい。NGNG
どんな大手ディストリビューションもOpenSSHが入っていてsshdが設定の有無はあるにせよ起動可能。
*BSDも同様。
0718名無しさん@お腹いっぱい。NGNG
>>717
なにを寝ぼけたことを言っているのやら。
0719名無しさん@お腹いっぱい。NGNG
そーですね
0720名無しさん@お腹いっぱい。NGNG
>>716
なるほど知らないうちにインストールされて
且つ、勝手に起動されるってことは無さそうですね。
0721名無しさん@お腹いっぱい。NGNG
昔は結構あったね。
勝手にサービス起動してるやつ。
最近はうるさいから。
0722名無しさん@お腹いっぱい。NGNG
>>712 あたり
そもそも上流で PermitRootLogin yes がデフォルトになってるのが謎だ。
0723名無しさん@お腹いっぱい。NGNG
>>716
Fedoraもデフォルトで起動されるが、
ファイアウォールのデフォルト設定で遮断される。
0724名無しさん@お腹いっぱい。NGNG
最近ssh2へのアタックが激しいんですが、
何かあったんですかね?
0725724NGNG
>>611 だったんですね ^^;
0726名無しさん@お腹いっぱい。NGNG
>>723
ファイアウォールって hosts.deny のこと?
0727名無しさん@お腹いっぱい。NGNG
iptablesじゃねぇの?
0728名無しさん@お腹いっぱい。NGNG
>>726
寝ぼけてるのか釣りなのか…
0729名無しさん@お腹いっぱい。NGNG
昨日の夜
Failed password for root from x.x.x.x port nnnn ssh2
が3秒おきに2650回... 鬱だ
0730名無しさん@お腹いっぱい。NGNG
>>729
/sbin/route add -host x.x.x.x reject
0731名無しさん@お腹いっぱい。NGNG
だからTCPWrappersで.jpと既知の接続元のみに絞っとけと(ry
0732名無しさん@お腹いっぱい。NGNG
rblsmtpd の ssh 版があるといいのかな?
0733名無しさん@お腹いっぱい。NGNG
tcpserverでsshdを待っていれば良い
0734名無しさん@お腹いっぱい。NGNG
iptablesだろ。
0735名無しさん@お腹いっぱい。NGNG
だから、どっからでもアクセスできるようにする必要は無いだろっつの
0736729NGNG
いや実際
PermitRootLogin without-password
だから 実害はないわけですがログが大量に出るのがいやなだけで Faildのはメールで届くようにしたんで朝見たら警告メールが2650通... と言うだけです。
どんな方法で拒否しても拒否したことをメール通知するようにしてたら同じだけ届くことには違いないわけでって、sshの話題じゃないですね。
0737名無しさん@お腹いっぱい。NGNG
>>736
ssh の前で drop しろっつの
0738729NGNG
>>737
dropしたらしたでdropした通知が来るわけで... ただの愚痴です。
0739名無しさん@お腹いっぱい。NGNG
ネタ?
仮にdropしたもの全部の情報が欲しいとしても
重要度の高い通知が埋もれるのは本末転倒なので、
都合のいい集計フィルタをつくったりするんだけどね。
賢いロガーをつかってもいいし。
0740名無しさん@お腹いっぱい。NGNG
リモートのサーバにあるファイルをPOPのようにSSH経由で(ただしPOPはまったく使わずに)取得→サーバ上のファイルは削除
ってのやりたいんだが、どうもうまい方法が見つからない。
rsync --deleteとかそういうのできるかと思ったができなかった(やるとしたら向こうからこっちにrsyncしないといかんヽ(`Д´)ノ)。

皆さん知恵を貸してくださいませ。
0741名無しさん@お腹いっぱい。NGNG
どうしても1コマンドでやりたければ、
ssh remote-host rsync --delete ...
とか。
0742名無しさん@お腹いっぱい。NGNG
>>740
smv 欲しくなるときあるよね。
0743名無しさん@お腹いっぱい。NGNG
ある、けど無い理由も解る
0744名無しさん@お腹いっぱい。NGNG
接続元IPアドレスによって、
パスワード認証を許可するか or 公開鍵認証のみにするか
を指定するには sshd_config でどう記述すればよいのでしょうか。
どなたか教えてください。
0745名無しさん@お腹いっぱい。NGNG
>>744
sshdをふたつ立ち上げる。
0746名無しさん@お腹いっぱい。NGNG
あー、なるほど。
とほほほほ。。。。
0747名無しさん@お腹いっぱい。NGNG
>>746
tcpwrapper で IP によって sshd -f ... を twist する。
0748名無しさん@お腹いっぱい。NGNG
多分初歩的なことだと思うんですが、

ttp://www.jp.freebsd.org/QandA/HTML/1949.html
を参照して、
鯖でssh-keygenして出来たid_dsa.pubを、クライアント側の~/.ssh/authorized_keys2にしたのですが、
入ろうとすると、Permission denied.(pubkey)と言われてしまいました。
何か勘違いしてますでしょうか?

pubkeyを使わずpasswd認証だけなら普通に入れてます。
0749名無しさん@お腹いっぱい。NGNG
>>748
とりあえずサーバー、クライアントのOS名とバージョン、
sshdやsshクライアントの名称とバージョンを書くよろし。
0750名無しさん@お腹いっぱい。NGNG
サーバ側の鍵をクライアントで認証したいの??
0751名無しさん@お腹いっぱい。NGNG
>>748
> 鯖でssh-keygenして出来たid_dsa.pubを、クライアント側の~/.ssh/authorized_keys2にしたのですが、

逆。
クライアント側でssh-keygenして出来たid_dsa.pubを、
サーバー側の~/.ssh/authorized_keysにコピーしないと。
0752748NGNG
>>751,>>751
やはり初歩的(っつーか根本的)なことでした。
なるほどそういうことだったのか...
解決です。thx。
0753初期不良NGNG
公開鍵暗号の仕組みをもう少し理解して使った方がいいんじゃないかと...
0754名無しさん@お腹いっぱい。NGNG
>>748の便乗質問です。

priとsecの2台のサーバがあります。
その2台のサーバに向かって、同じクライアントホストから、
telnetコマンドで22番をたたいてみると、

$ telnet pri.***.com 22
Trying...
Connected to pri.***.com
Escape character is '^]'.
SSH-2.0-OpenSSH_3.6.1p2

$ telnet sec.***.com 22
Trying...
Connected to sec.***.com
Escape character is '^]'.
SSH-1.99-OpenSSH_3.6.1p2

みたいな感じで、表示される結果が違います。
サーバ側であがっているSSHのverが違うってことなんでしょうか?

両方のサーバの状態をそろえるにはどこを手直ししたらよいのでしょう?
疑うことができるところを教えて欲しいのですが。。。

ちなみに、
・両サーバのsshd_configは同じ。
・バイナリーもpriからsecに同じもの(OpenSSH3.6.)を移動
・sshdの再起動は両サーバで実施済み。
・両サーバ、クライアント全てOSは赤帽9
です。
0755754NGNG
補足。

・実現したいこと
priが障害でpriのIPがsecに移った時に、
同じIPにむかってsshでログインしようとすると、
いまクライアント側にある、サーバ側の公開鍵が書き換わったよ、
(DSAの公開鍵→RSAの公開鍵?)
みたいなメッセージが出てしまって、
書き換えますかみたいなyes/no聞かれてしまいます。
このメッセージが出なくなるようにしたいのですが。。。
0756名無しさん@お腹いっぱい。NGNG
>>754
> ・バイナリーもpriからsecに同じもの(OpenSSH3.6.)を移動
そんなことやって大丈夫なの?

>>755
~/.ssh/known_hosts から公開鍵を手で消すとか。
UserKnownHostsFile をいじるとか。
0757754NGNG
>>756
>> ・バイナリーもpriからsecに同じもの(OpenSSH3.6.)を移動
>そんなことやって大丈夫なの?
書き方わかりにくくてすまそ。
言いたかったことはpriとsecはクラスタ構成ってやつで、
ハードから入ってるアプリとかもすべて、
環境は同じにしているつもり、ってことです。
#同じじゃないからだめなんだろうとはおもうけど。。。
バイナリ云々は気にしないでください。


>~/.ssh/known_hosts から公開鍵を手で消すとか。
>UserKnownHostsFile をいじるとか。
known_hostsも同じにものにしてます。
切り替わった後に手を加えないでsshで入りたいんです。
一度公開鍵を書き換えれば、その後はyes/no聞かれずに入れます。
(ただ、またpriに切り替わったらyes/no聞かれます。。。)
言葉足らずですまそ。
0758名無しさん@お腹いっぱい。NGNG
クライアントで切り替わったのを意識したくなかったら、
それこそサーバのホスト鍵も一緒にするしかない。

priとsecで同じアドレスを引けるようにして、
ssh pri
ssh sec
とすればknown_hostsのエントリは別個になるけども。
0759754NGNG
>>758
>クライアントで切り替わったのを意識したくなかったら、
>それこそサーバのホスト鍵も一緒にするしかない。

なるほど。それはわかりました。

えーと、いまその二つのサーバに入れないからちょっと確認できないんだけど、
ssh-keygenで作った鍵はrsaもdsaも二つともあって、
全く同じkeyが二つ、priにもsecにも両方にあるとする。

そのとき、サーバ側のホスト鍵をどれを使うかを、
たとえば、クライアントのホスト名とか、ログイン先(元)のユーザ名ごと
によってつかいわけることってできるんでしょうか。
できるとしたら、それを決めるファイルってどれなんでしょう。

telnetで22をたたいたときの、
---
pri: SSH-2.0-OpenSSH_3.6.1p2
sec: SSH-1.99-OpenSSH_3.6.1p2
---
ステータスが違うから、
サーバごとに、デフォルトで参照するホスト鍵もちがうのかなと、
ちとおもいました。

汚してばかりで申し訳ない。。。
0760名無しさん@お腹いっぱい。NGNG
おすすめできないけど、
~/.ssh/ssh_config でこうするとホスト鍵変わっても質問されなくなる。

Host: pri
StrictHostKeyChecking no
Host: sec
StrictHostKeyChecking no
0761名無しさん@XEmacsNGNG
>>759
> そのとき、サーバ側のホスト鍵をどれを使うかを、
> たとえば、クライアントのホスト名とか、ログイン先(元)のユーザ名ごと
> によってつかいわけることってできるんでしょうか。

sshd のレベルでは各アルゴリズム (rsa1/rsa/dsa) 毎に有効な鍵は
高々一つなので、そういうことをやりたい (それができたところで
問題が解消されるとも思えないんだけど) なら sshd を起動する前
の段階 (tcp_wrapper とか) でなんとかせにゃならんでしょうね。

> pri: SSH-2.0-OpenSSH_3.6.1p2
> sec: SSH-1.99-OpenSSH_3.6.1p2

この辺り、man page にも載ってないし、ぐぐってもあんまり見付か
んないぽいけど、1.99 と 2.00 の違いは protocol version 1 系を
サポートするかしないか。普通は sshd_config の Protocol の設定
を反映するもん。

だもんで、sshd_config の内容が前の書き込みにあった通り本当に
両ホストで同一なんだとすれば、こうなる原因として考えられるの
は、pri の方に version1 用のホスト鍵が置いてない、くらい。
0762SSH野郎NGNG
SSH2でRSA2とDSAどっちつかってる?
で、採用の決め手はなんかも教えれ。
■ このスレッドは過去ログ倉庫に格納されています