SSHで接続できない

イメージ
 Ubuntuを24.04→26.04 時間があったので、メインマシンのUpgradeを実施。 とはいえ、とはいえ、システムディスク(/)とデータディスク(/home)を分けているのでクリーンなインストールを実施。 (1) USBでUbuntu26.04を起動 (2) /home/user → /home/user_old にリネーム (3) 26.04をインストール これで、/home/user_oldにこれまでの環境が残ったまま、新規userでインストールすれば完了。もともとのuserが使用していたuser_id:1000のままなので、どちらのフォルダも見ることができる。 あとは、使用するソフトをインストールし  /home/user_old 以下から、利用する設定ファイル等をコピーして動作確認するだけ。 Dropbox MEGA などは、先にコピーしてから、フォルダ同期設定をすることで、ダウンロードなどはチェックのみで完了する。 thunderbird brave browser vscode dbeaver-ce typora obsidian LMStudio ollama あたりを移行してほぼ終了 .sshはそのままコピーして完了。 と思っていたら、何故かサーバによっては接続できない場合があることに気づいた。 $ ssh vps 何も返ってこず、接続できない。 でこれまで接続できていたのに、うまく行かない?? 詳細を確認しながら、チェックすることに。 $ ssh -vv vps debug1: OpenSSH_10.2p1 Ubuntu-2ubuntu3.5, OpenSSL 3.5.5 27 Jan 2026 debug1: Reading configuration data /home/user/.ssh/config ︙ debug2: we sent a publickey packet, wait for reply debug1: Server accepts key: /home/user/.ssh/id_rsa RSA SHA256:n5ocPbCvMV4FGFof … … … … … pBuJ/8r/kHGANY explicit agent のように、 認証完了後にシェルが起動せず、応答がない状態になっている。 具体的には ...

Crypt::SSLeayが入らない

Perlでの作業中

ちょっとスクリプトからWebページをゲロってこようと思い、LWP::UserAgentなどを使って、取得していた。

ちょっとhttpsあたりも必要に迫られ、getしようとしたらエラーを吐いてくる。

ふむふむ。
ぐぐってみると、Crypt::SSLeayを入れろとな。

ちうことで、
$ sudo perl -MCPAN -e shell
で、CPANから入れることに。
cpan[1]> install Crypt::SSLeay
通常は、これでOKなはずなのに…。エラー吐いてくれます。
でもなぁ、CPANから自動で入れているのにmakeで転けられても…。

でも、昔の出来事を思い出してテストして見ることに。
「接続を拒否されました」というメッセージが気になる。

Linuxの初期に良くあったのだけれど、これってLANG=Cでないと動かないんじゃ?

ちゅうことで、再度やり直してみる。

英語モードで再度実行!

一旦、抜けてcpanの起動から。
$ LANG=C sudo perl -MCPAN -e shell
表示はもともと英語だし、何も問題ないはず。
同様に、Crypt::SSLeayを入れてみる。

全てのテストに合格して、無事インストール完了!!
やはりな!って感じです。

はっ!! インストールが目的ではなかった…。

さて、SSLが使えるようになっているはずなので、テストする。
500 Can't verify SSL peers without knowning which Certificate Authorities to trust
orz...

SSL証明書と一致しないらしい…。

もうひと踏ん張り。

SSL 証明書のエラー時の対応

 どうやら、良く発生するようで…。あちこちに対応策が書かれていた。

[Perl] LWP::UserAgent で SSL 証明書のエラーへの対応
の記述がわかり易かった。


  1. ホスト名の検証をしない
  2. CAを明示する

いやいや、1はまずいんでは?という思うので、2の方針で。

Mozilla::CAを入れれば良さそう。

さっそく、cpanでMozilla::CAをインストール。
スクリプトの最初にuseを突っ込む。

でもダメやった…。
CPANで「Crypt::SSLeay」をインストールする際のエラー対処」なんて素敵なページを見つけて実行するも、変化なし。

検証しない方向でテスト

なんやかんやと、スクリプトを書き換えて、結局この辺りで落ち着いた。

use LWP::UserAgent;
BEGIN {
   $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS} = "Net::SSL";
   $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
}
my $agent = LWP::UserAgent->new(
    ssl_opts => { verify_hostname => 0 },
);
環境変数の変更と、念のためオプションを設定してやったら、エラー無しで動作した。

しかしなぁ…。
そのうちバージョンが上がると、何もなかったように動いたりするんだろうな…。

パッケージの中身まで解析する時間的余裕はないので、まぁひとまずOKということで…。

コメント

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!