90559


SSHでポートを変更して接続しようとしたらターミナルに `ssh: connect to host x.x.x.x port xxxxx:
Connection refused` と表示されます。sshdの設定をいじる前も後もポート22だけ接続に成功します。

`/etc/ssh/sshd_config`
にはポートを22から別に変更してufwで別のポートを許可したのですが、通常の22番だと動くのにそのポートを指定して接続しようとすると動かなくなります。configには22以外のポートを書いてそのポートで接続しようとするとconnection
refusedと表示されるのに何も指定せずに22番で接続すると問題なく繋がります。ユーザー名とIPアドレスは何度も確認しました。ConohaVPSのコンパネのポートはv4,v6共にすべて許可にしてあります。

ファイアウォールをリロードしたりサーバーを再起動したりしたのですが直らず、分かりませんでした。  
どなたかご教示お願いします。

サーバー: ConohaVPS, Ubuntu 20.04.4 LTS  
接続元: Windows 11, Openssh

ポートを変更して接続失敗した時:

[code]

    C:\Users\username\dir>ssh -p 変更したポート番号 -v username@x.x.x.x
    OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
    debug1: Connecting to x.x.x.x [x.x.x.x] port ポート番号.
    debug1: connect to address x.x.x.x port ポート番号: Connection refused
    ssh: connect to host x.x.x.x port ポート番号: Connection refused
    
[/code]

* * *

また、少し気になったのですが、configの設定ではsshからrootのログインはできないように設定しておいてあって `ssh root@x.x.x.x`
で接続すると `permission denied`
と表示されるのですが、sudo権限もってる一般ユーザーでssh接続してからrootでログインしたら入れたのですが、これって普通出来るんでしょうか？


CC BY-SA 4.0
2022-08-12T14:31:45.780
90528
2022-08-15T20:53:05.930
2022-08-15T20:49:36.887
3054
51247
question
linux ubuntu ssh
SSH でポート番号を変更して接続しようとすると connection refused と表示される


ふつう、VPSのサービスには、別個に独立したファイアウオール機能がついてたりします  
そのVPSのヘルプを見るなりして、そこらへんでブロックされてないか調べてみよう


CC BY-SA 4.0
2022-08-13T06:57:32.263
90542
2022-08-13T06:57:32.263
27481
90528
answer


`sshd`
の設定を変更したはずの後にもポート22で接続できるのなら、おそらく実際には変更できていません。ただ、複数の待ち受けポートを設定することも出来るため、まずは実際にどうなっているのか確認する必要があります。

### `sshd` のログを確認する

`sshd` の起動時に全ての待ち受けアドレスとポートの組合せに対し、下のようなログが出ているはずです。

[code]

    sshd[****]: Server listening on **** port ****.
    
[/code]

これのポート部分を確認します。Ubuntu などの Systemd を使用したディストリビューションの場合、

[code]

    journalctl -u sshd
    
[/code]

で検索できると思います。

### `sshd` の設定を確認する

`/etc/ssh/sshd_config` で、

[code]

    Port ****
    
[/code]

といった記述を探します。意図しない複数の記述が有る場合は目的の一つだけ残して削除します。このような記述は `ssh`
クライアントの設定でも有効なことに注意して下さい。つまり、誤って `/etc/ssh/ssh_config` に記述してしまってもエラーにはなりません。

### サーバー上で接続の可否を確認する

対象のサーバーで、自機に対し接続します。

[code]

    ssh -p 設定したはずのポート localhost
    
[/code]

と、

[code]

    ssh -p 22 localhost
    
[/code]

のどちらで接続が成功するのか確認します。

* * *

### root によるログインが禁止でも sudo は使える

sshd で root をログイン不可にしていても、一般ユーザーが ssh で接続して sudo
を使うことは出来ます。これは、設定の失敗などではありません。sshd の設定と sudo の設定は別なので、問題無いことです。


CC BY-SA 4.0
2022-08-13T21:54:58.627
90551
2022-08-15T20:53:05.930
2022-08-15T20:53:05.930
3054
3054
90528
answer


自己解決しました。  
お恥ずかしながらconfigのポートの行がコメントアウトしてあり、気付かずそのまま使っていました。再設定後sshdを再起動したら無事接続できました。皆様色々ご教示下さりありがとうございました


CC BY-SA 4.0
2022-08-14T07:09:49.713
90559
2022-08-14T07:09:49.713
51247
90528
answer