SSH その8
MACアドレスとか入ってるからじゃない?
WiFiが暗号化されてれば問題ないはずだけどね >>400>>401 レス感謝!ガチなド素人なもんでホントスマン。その暗号化が必要かどうかもわかってないもんで。
もともとは使ってる某NECルーターにある「ホームipロケーション」という簡易ddns機能的な奴を使って外部からwolをしようとしたら送信画面が暗号化されてない事に気付いて、これをなんとかしようと思った訳です。
よっぽどヤマハのルーターでも買ってやろかと思ったけどSSHサーバーぶっ込むの面白そうだなとチャレンジ中。 >>402
外部とルータ間の通信の暗号化は必要かもしれない
誰かが認証を盗聴したら同じことができてしまうからね
もしsshで接続できたとしたら、そのPCは起動しているだろうからWOLは不要
wake on lanはその名の通りLANで使うもの
同一ネットワーク内の全ての端末に簡単な通信パケットを送って各自がそれを見て自分宛だったら起動する
基本的には他のネットワークからは起動できない
だからルータにその機能がよくついている
外部端末とルータ間の通信の暗号化をお勧めする
またはVPNとか >>403 エスパー発見!ありがとうございます。聞きたい事が全て先回りで答えが出てる感じ。やっぱVPNか。最初はpcをvpnサーバにしようかと思ってたところノーパソサーバ化&常時起動は火災の元みたいなスレ見てwolの適時起動にしようかと思ったの。
お騒がせしました。壮大なスレチでスマソ。 >>404
VPN鯖にしたいだけならラズパイみたいなボードPCをおすすめしておく >>405 ラズパイ考えてた!スペックの低い端末を鯖にした時の通信速度が心配で候補から外してた。(あと敷居が高そうで)
メガサンキュー!方向性が見えてきた。 >>406
余程古い環境以外は通信速度のほうがボトルネックになるからそこまで気にしなくてもいいと思うけどなー、まあ敷居が高いのは言えてるが ルータにVPNないなら
常時稼働ラズパイにsshで繋いでwolでも簡単だね ここの人はスマホのSSHクライアント使ってる?
便利だけどすごく不安だわ
悪意のあるクライアントだと秘密鍵・パス・ホスト名を送信してるかもって思う >>409
Connectbotとターミナルのdropbear使ってる、ソースあるし なるほどオープンソースのクライアントを使えばいいのか 自分でビルドせずにストアから入れる場合は
そのソースから変更されないでビルドされてること確認しないとな
信頼できるディストリビューターって楽だな感謝 一度ログインできたホストに対して、コネクション落ちた後とか
何らかのきっかけで再ログインしようとした時に
「ssh_exchange_identification: Connection closed by remote host」
になる場合ってどういう原因でなりやすいの?
現状だと仮想マシンで運用しているからバックアップの仮想マシン
のスナショを新たに複製してそっちにはログインできる。
ログインできなくなったVMは使い捨ててるけど流石にめんどくさすぎる。
どうすれば効率よく再ログインできるようになる? 見たことなかったのでぐぐってみた。
sshd_configのMaxStartupsを増やすと解決することもあるらしい。 tor ってsshポートフォワードで不特定多数のサーバプロキシしてんの?
レイヤがよくわからん >>417
sshスレにいるってことは公開鍵暗号を理解してる前提で説明すると
複数のtorノードをピックアップして各ノードの公開鍵で次のような入れ子の暗号データを作る
ノード1の公開鍵(ノード2の公開鍵(ノード3の公開鍵(オペレーション)))
ノード1が上のデータを受け取ると自分の秘密鍵で復号化してノード2に送る
ノード3まで来ると復号化した時にオペレーションが見えるので実行する
各ノードは最終ノード以外あといくつのレイヤがあるか分からない >>418
うっわぁ・・・手が込んでるなこれ
接続結構遅くなるんじゃない?
鍵交換の猶予時間厳しくすればTorだけ弾けたりするのかな。
だめだ、最後のノードしか関係ないんだよな。
手動でしか鍵作ったことないけどssh-keygenとかそういう諸々は
自動化されてるのか?
転送先ってランダムなんでそ? いまさら気づいたが
ESXi 6.0 入れたら
同梱の ssh が dropbear じゃなくて OpenSSH のものになっていた。 CentOS7の、OpenSSH6.6を使ってます
マシンにはLANインタフェースが3つあり、1つはインターネットへ、2つは内部用です
ここで、インターネット用のインタフェースだけ、SSHのポートを例えば2222に変更、それ以外は標準の22で利用したいと思ってます
sshd_configに、port 2222、ListenAddressにIPアドレス:22と書けば良いという情報を見つけたのですが
このListenAddressをカンマ区切りやスペース区切りなど色々と試しましたが複数の指定はできないらしく、
また0.0.0.0:22を指定するとインターネット用インタフェースでも22番をリッスンしてしまいます
結局、sshd_configは諦めて、iptablesによるフィルタリングとポートフォワードを併用して実装はしているのですが、
sshとiptablesの両方が設定に絡んでいて、分かりづらくなっているのを改めたいです
sshd_configで上記のような設定をすることは可能ですか? >>423
複数行で
ListenAddress インターネット:2222
ListenAddress 内部1:22
ListenAddress 内部2:22
と書いたところ、うまくいきました
ありがとうございました OpenSSH 7.6
・ssh-1プロトコル完全に捨て
・arcfour,blowfish,CAST捨て
・1024ビット未満のRSA鍵は受け付けない
・CBC cipherはデフォルトで提供しない
古いssh鯖だと1024ビット未満制限とかCBCに引っかかるところあるんじゃないかな? RSA鍵長のデフォルトが1024ビットのときなんてあったっけ? CBC捨てるのはナゼ?
昔、実装の問題があったのは覚えてるけど、仕様自体に問題があるの? CBC自体にはPadding Oracleを防ぐ・検出する仕組みがない >>424
UnixもLinuxの親戚なんだからいいだろ >>430
それはそうだけど、sshとしてcbc使った場合、
実装に問題がなければpadding oracle攻撃は不可能じゃない? >>433
それ言いだすとFreeBSDとかも除外されてしまう Agent Forwardingは
A->B->Cって繋げていくとき
AからBの鍵とBからCの鍵が同じじゃないと出来ないと思うんですけど
あってますか? >>437
必要な鍵は「AからBの鍵」と、「AからCの鍵」
それらは別の鍵でいい
「BからCの鍵」は不要だよ
それらをすべて同じ鍵にすると、BにはAの秘密鍵も公開鍵も配置する必要があり
真に重要な鍵(Aの秘密鍵)を他人(B)に預けずに済むというAgent Forwardingのメリットが
なくなってしまっているのでは ありがとうございます。
まとめるとB→Cの鍵がいらないかわりにA→Cの鍵とA→B使う
ことですね。 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
KMBRYP28K7 sshで接続されたとき、クライアント側のオプションによって
クライアントが、サーバに接続したときにポートフォワードの設定ができますよね
これをサーバ側からできませんか?
サーバが、クライアントから接続されたときにポートフォワードの設定をしたい >>441
「サーバ側」の意味がよく分からないが、サーバ側でリスンしてクライアント側に繋ぐなら-Rでよいかと。
それとも繋いで来たクライアントにポートフォワードを強制させるサーバ側の設定があるかということ?
多分それは無理だと思う。 >>442
後者です
無理か・・・ まあ無理だよね。 ☆ 私たち日本人の、を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。 OpenSSH 7.7出たけど今回はあんま変わってないね。
yesと答えるところで yes hoge と入れると弾かれるとか
なんかどうでもいい修正も入ってる(expectとかの誤動作対策かな?) sshでログイン時に表示されるhow toのような物を表示させたくないので
その設定方法を教えて下さい
sshd_configで
PrintMotd no
Banner none
上記の設定でOSの起動時のメッセージは表示されなくなったけど
何種類かのhow toのような物がランダムな順序で表示される 追加です
●サーバー側
OS: FreeBSD 11.1
ssh: OpenSSH_7.2p2
●端末側
OS: Win7
sshクライアント: PuTTY >>448
fortune のことかな。.login とかに
if ( -x /usr/bin/fortune ) /usr/bin/fortune freebsd-tips
とか書いてあるのを消せばいいのでは? >>450
ありがとうございます
ssh用のログインユーザーの
~/.login
~/.profile
の2つのファイルに書かれていたので、コメントアウトしました
これで、すっきりしました 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
K9FUK openssl-1.1.1-pre9 が出たので ライブラリだけ再コンパイルしたんだが
sshd って再コンパイルしてやらないと動いてくれないのな。
めんどくさい。
# `pwd`/sshd
OpenSSL version mismatch. Built against 10101008, you have 10101009 OpenSSH-7.9p1 って OpenSSL-1.1.x サポートするようになったのね。
パッチ当てなくてもconfigureも通るしコンパイルできる。
EVP_CipherInit_ex のパッチは必要でなくなったのかな? ポートフォワード経由でWindowsファイル共有ってできるかな?
RDPはできてるんだが。 Solaris 11.4 の sshd (OpenSSH_7.5p1, OpenSSL 1.0.2o 27 Mar 2018) の設定なのですが
sshd_config に、
# Site local settings
Match Address *,!192.168.1.0/24
MaxAuthTries 0
のようにして指定のIPアドレス以外からの接続を拒否しています。
これに、あるドメイン(例: *hogehoge.com)からのアクセスも受け付けるようにしたいのですが
Match host *,!*.hogehoge.com
MaxAuthTries 0
のように記述を加えたらどこからもアクセスできなくなってしまいました。
Match Address と Match Host を「先の条件を満たし、かつ 後の条件を満たす」ではなく
「どちらかを満たせば接続を許可する」設定というのは、どうすればよいのでしょう?
Match address *,!192.168.0.0/24 and Mtach host *,!hogehoge.com
MaxAuthTries 0
なんて論理式書ければいいんですが そういうのは無いですよね?
ちなみに件の sshd には、tcp_wrappers はリンクされていません。 自己解決できてしまいました。
まずどうやってもうまくいかなかった理由
UseDNS no
デフォルトでは DNS 逆引きをしてくれませんでした。マッチする筈がない。
次に * で拒絶して、! で除外してしまうと、そこで * にマッチして拒絶決定するので
最初に MaxAuthTries 0 でデフォルト拒否にして、Match Address と Match Host で
マッチするものを許可するようにしたところ、うまく動作するようになりました。
# Site local settings
UseDNS yes
MaxAuthTries 0
Match Address 192.168.1.0/24
MaxAuthTries 6
Match Host *.hogehoge.com
MaxAuthTries 6 ところで、IPアドレスで接続制限をするために MaxAuthTries を 0 にするっていうのは
Oracle Solaris のドキュメントを見て設定したんだけど
これだと Teraterm Pro のパスワード入力画面は出てしまうし、
(試行回数 0 なので正しいパスワードを入れても拒否される)
tcp_wrappers みたいに「接続してきた時点で認証前に接続を切断」
またはそれに近い、もっとスマートな方法はないですかね? AuthenticationMethods none どないだ? >>462
デフォルトを none、Match に match した場合に any になるようにしてみましたが、
none が適用される状況でも MaxAuthTries で指定した回数を超えるまでパスワード入力
できてしまいますね。もっとも、正しいパスワードを入力しても
Permission denied, please try again.
が繰り返し表示されてログインできないのですが。
単純に disconnect ってディレクティブが使えればねー sshのconfigは腐りすぎててどうしようもないと思うんだ
AuthenticationMethodsは認証通過可能なものを設定するだけで、個々の認証に挑戦するかどうかは
PubkeyAuthenticationやPasswordAuthenticationなどの*Authenticationで決まる
つまり全ての*Authenticationをnoにすることで認証に挑戦しなくなる
ただしデフォルトをnoにすると機能しなくなる認証タイプもあるという腐れっぷりなので注意が必要かも
そういう場合、デフォルトをyesにしておいて、最後の最後でMatch *でnoするとかの小細工がいる >> sshのconfigは腐りすぎててどうしようもないと思うんだ
にもかかわらず、
Oracle Solaris にしろ debian にしろ、素の OpenSSH 実装に変えてきてるしねぇ ウェルノウンでないポートをssh用に開いていて時々海外からアクセスがあるんだけど
今日の未明に日本のNTTアドバンステクノロジから来ていた
調査か何かしているのかな?連休の未明だから間違えて接続とかではなさそうだし NICTのアドレスからじゃないのか
NTT-ATに発注したのかな IoT機器調査及び利用者への注意喚起の取組「NOTICE」で使用するIPアドレスについて(2月14日更新)
https://www.nict.go.jp/info/topics/2019/02/13-2.html >>470
入っていないな……
NTTアドバンステクノロジの独自調査なのか、踏み台と化しているIPがあるのか Teraterm って複数相手のサーバーにSSHで接続する場合にも、
秘密鍵を1つしか使わないだろうと勝手に仮定して作られているようで、
そのため、実際にはつなぐ相手によって秘密鍵が違う場合には、
つなぐ相手のサーバー毎に、秘密鍵を指定しなおさなければならず、
とても不便だ。
接続先のサーバーと秘密鍵の組み合わせを登録できなきゃ不便だ。
Unixの上のSSHだったら、 .ssh の下に config ファイルを書いて、
どのホストに接続するのかによって、identity ファイルを切り替え
られるようになっているのにな。 宛先と鍵ファイルまでコマンドラインで指定したショートカットファイルを作ればいいんだと思う ホームディレクトリに生成される~/.sshディレクトリってどうしても移せないのかな。
できればホームディレクトリがすっきりしている方が嬉しいので~/.config/sshあたりに移したい。 そのおかしな感情を消す努力をした方が
後々のあなたの人生において
いろいろなことが優位に動くでしょう AuthorizedKeysFile を ~/.config/.ssh/authorized_keys にすればお望み通りになるだろう
だが、それで何かがすっきりするとは思えん pathnames.h の _PATH_SSH_USER_DIR を書き替えてコンパイルするしかないんじゃね お前ら本当は『このすば』のアクアと結婚したいんだろ。素直になれよ >>479
ありがとう!
でも再コンパイルか……やめときます。 >>480
めぐみんがいいです
scanner1.openportstats.com[89.248.168.62]という怪しい客人から隠し扉をノックされたw
ああいうのはいちいち大きな番号のポートまでスキャンして、開いているとSSHのログインを試行しているのかな ポートスキャンすらされない1ケタ番台ポートを隠し扉にするって手もあるぞw
OpenSSH 8.0p1 を OpenSSL 1.1.1でコンパイルしてmake test全部通ったやしいる?
公式には非対応だけどビルドはできる。
ただ漏れマシンななんか怪しくてmake LTESTS=rekey t-exec がランダムに
通ったり通らなかったりする $ ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018
ちなみにsynスキャン、finスキャンは全部蹴ってる
pfのルールもsynproxy + antispoof
今のところ結構効果はあると、、思う ports treeから
# make test
〜〜〜〜〜〜
all tests passed
1699.705u 100.260s 48:55.51 61.3% 305+337k 97+724io 25pf+0w
# /usr/local/bin/ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1c 28 May 2019 OpenSSH U2F/FIDO support in base
https://undeadly.org/cgi?action=article;sid=20191115064850
yubicoとかと組み合わせられるようになるのかな。 ちょっとここでいいのか不明ですが質問させてください
Windows10のOpenSSHに接続して、遠隔でAutoItというスクリプトツールで作ったexeから
ホットキー操作を発生させようとしてるのですが、動作しません
SSHでログインできるフォルダ内でecho >> hogehoge.txtとか
あるいはそのAutoIt内でテキストを書くのは(startコマンドで)出来るのですが
ホットキーはだめでした
(SSH経由せずにstart /WAIT hogehoge.exeなら普通に動く)
こういうのはSSHでは不可能なんでしょうか? 自己解決、というかとりあえずテキストにコマンド書いてファイル監視でうまくいったので
これでいくことにしました、失礼しました OpenSSH-8.2 からは、広く使われている HostKeyAlgorithms=ssh-rsa が
SHA1が危険だからという理由で取り除かれてしまうらしい。
ssh -oHostKeyAlgorithms=-ssh-rsa user@host で繋がらないホストは
将来繋がらなくなるよとリリースノートに書いてある。
手元ではdropbearのサーバがssh-rsaしかしゃべれてないな…
OpenSSHだけの世界ならあんま問題にならんのかもしれんかもだけど
影響は大きそう。 WANに存在する踏み台を経由して接続してきた相手の大元のipを調べることはできますか?
プロバイダの協力は無しという条件で https://github.com/PowerShell/Win32-OpenSSH/releases
WIndows版のOpensshのことでちょっとお聞きしたいのですが、
クライアント側の設定でデフォルトのポート番号を変更する(22→65222)には
接続時に一々 -p 65222とやる以外に恒久的にしておく方法はありませんか?
Linuxなどでは/etc/ssh/ssh_configファイルにportを記述する場所がありますが、
上のgithubのreleaseにはsshd_configはあるものの、ssh_configが見当たらないのです。
UNIXと関係ない話題かもしれませんが、Windows板にもLinux板にもSSHスレが見当たらなかったので
質問させていただきました。どうも失礼しました。 Windows でもユーザーのホームディレクトリ下に .ssh ディレクトリを作って、その中に置けばいいのではないかと
C:\Users\(ユーザー名)\.ssh\ssh_config >>494
ファイル名がssh_configではなくconfigならいけました。
ここらへんはLinux等と同じようです。
ただwin8.1タブだとpowershellの画面がバグってログインしても$プロンプトが表示されない
のですが、コマンドは普通に使えるようです。
とにかく、教えてくださってありがとうございました。 同じ鍵ペアでもサーバーが異なればホストキーのハッシュやVisualHostKeyは変わりますか? 同じ鍵ペアとは、sshサーバーが持っているホストキーの話ですか?
別のサーバーでもホストキーが同じならハッシュやVisualHostKeyも同じになります
https://cloud-news.sakura.ad.jp/2016/04/27/ssh-host-key/
こういうことが起きます 即レスありがとうございます
勘違いしていました
VisualHostKeyはサーバーのホストキーのイメージなんですね
ではssh-keygenで作成した公開鍵のfingerprintのrandomartは、
どういうときに使用されるのでしょうか
これを確認する方法はありますか? 秘密鍵と公開鍵のペアのfingerprintが正しいのかな 公開鍵のハッシュですから、公開鍵が間違ってないか確認するのに使えることになってますね
ユーザーが自分で作成した公開鍵を、サーバー管理者にメールで送って、フィンガープリントは別の方法(LINEとか)で送る
受け取ったサーバー管理者は、公開鍵のフィンガプリントを照合して「よしっ」と言う
こういうシナリオはよく紹介されていますが、実際にやっているかどうかは分かりません(私はやってません)
自分の経験としては、サーバーのauth.logにはログインしてくるユーザーの公開鍵のフィンガープリントが記録されているので
それと authorized_keys に登録されている公開鍵のフィンガープリントを比べて、登録されているかどうか調べたことくらいです