ssh接続 rootログインなし、パスワード認証なし、port指定
sshの復習用メモ
- sshとは
- sshd (ssh daemon)
- scp (secure copy/secure copy protocol)
- ネットワークを介して別のコンピュータを操作するsshの機能の一つで、手元のコンピュータとの間でファイルをコピーするもの。また、そのためのコマンドおよびプロトコル(通信規約)。
- sshは手元のコンピュータから遠隔地のコンピュータへの通信を暗号化し、認証情報やコマンドの発行、応答などの通信内容を安全にやりとりできる。scpはssh上でのファイルコピー機能で、接続先のコンピュータとの間で安全にファイルの送受信が行える。
- scpのコマンドの形式などはUNIXの標準ファイルコピーコマンドであるcpやrcpとほぼ同じで、これらと同じ感覚で使うことができる。一方、ssh上でファイル転送を行なうコマンドおよびプロトコルにはSFTPと呼ばれるものもあり、こちらはFTPに似たコマンド体系で操作することができる。
ウェルノウンポートとは
- TCP/IPによる通信で利用されるTCPやUDPのポート番号のうち、著名なサービスやプロトコルが利用するために予約されている0番から1023番のこと。
- インターネットなどのTCP/IPネットワークに接続されたコンピュータは、通信プロトコル(通信規約)のTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)を使用する際に、0番から65535番までの番号で識別される「ポート」(port)と呼ばれる接続の窓口を利用する。
- このうち、0から1023までの各ポートはそれぞれ特定のサービスやプロトコルが利用することが広く知られており、インターネットで公開するサーバはその番号を当該サービス、プロトコルで利用することが推奨されている。特に有名なのはHTTPの80番やFTPの20・21番、SMTPの25番、POP3の110番、DNSの53番などである。また、新しいプロトコルやサービスは1024番以降を利用することが慣例となっている。
- ただし、サーバ上でどのサービスをどのポートで動作させるかはソフトウェアによって設定できるようになっていることが多く、必ずしもウェルノウンポートでなければそのサービスを起動・利用できないわけではない。実際、HTTPのプロキシサーバなど、特殊な用途のためにわざと本来とは別のポート番号でサービスを提供する場合もある。
- PermitRootLoginを変更したい
-
$ sudo vi /etc/ssh/sshd_config
を入力してSSHの設定ファイルを開く - Rootログインを禁止する為に
- #PermitRootLogin prohibit-passwordを
- PermitRootLogin noに変更
-
- port変更
- パスワードログインの禁止、公開鍵でのログインのみできるようにする
#PasswordAuthentication yesを
PasswordAuthentication noに変更
escボタンでコマンドモードに切り替えて、:wq!で保存して終了
$ sudo vim /etc/ssh/sshd_config # Port 22をxxxxに変更 :well-known portから変更 # PermitRootLogin yesのyesをnoに変更 :sshでrootログイン禁止 # PasswordAuthentication yesのyesをnoに変更 :sshでパスワードログイン禁止 $ sudo /etc/init.d/ssh restart # sshd再起動 # MacのTerminalから実行 $ ssh username@IPアドレス -p xxxx # -pでポート番号指定
ssh接続 ・ 手順
手順 サーバー
:~$ mkdir ~/.ssh # ~/.sshのディレクトリを作る。 :~$ chmod 700 ~/.ssh # 権限与える
手順 ・ クライアント (ターミナル)
- $ ssh-keygen -t rsa #鍵を作る
- $ ls .ssh #鍵の確認 id_rsaとid_rsa.pubの2つあればいい。
- $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys #公開認証鍵を送る
- Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #yesと入力
- Password: #パスワード入力
- id_rsa.pub 100% 571 69.9KB/s 00:00 # 鍵が送れた。
#ミスも記載しています。 $ ssh-keygen -t rsa #鍵を作る $ ls .ssh #鍵の確認 id_rsaとid_rsa.pubの2つあればいい。 id_rsa id_rsa.pub known_hosts Generating public/private rsa key pair. Enter file in which to save the key (/Users/xxxxxxxx/.ssh/id_rsa): Created directory '/Users/xxxxxxxx/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/xxxxxxxx/.ssh/id_rsa. Your public key has been saved in /Users/xxxxxxxx/.ssh/id_rsa.pub. The key fingerprint is: SHA256:vyb0pQ3j3NBRYtGORKUUPen5yn/T/SjvFXKL8ffvXt0 xxxxxxxx@mbp The key's randomart image is: +---[RSA xxxx]----+ | .=*.. | | .+.* | | o.* o | | o + | | S . + + | | ..+ o * *| | . +.O o +E| | . *.+ o+B| | o. +++%| +----[SHAxxx]-----+ $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る。 ssh: connect to host アドレス port 22: Connection refused #しかし、port番号を変更していて22番にもどした。 lost connection $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る The authenticity of host 'アドレス (アドレス)' can't be established. ECDSA key fingerprint is SHA256:HygdwrWMmJGzJNbqbH6iMGdrAxj5nUcwokoltR+iImk. Are you sure you want to continue connecting (yes/no/[fingerprint])? # Return押して失敗 Host key verification failed. lost connection $ scp ~/.ssh/id_rsa.pub ユーザー@アドレス:~/.ssh/authorized_keys # 公開認証鍵を送る The authenticity of host 'アドレス (アドレス)' can't be established. ECDSA key fingerprint is SHA256:HygdwrWMmJGzJNbqbH6iMGdrAxj5nUcwokoltR+iImk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes #yes入力 Warning: Permanently added 'アドレス' (ECDSA) to the list of known hosts. Password: #パスワード入力 id_rsa.pub 100% 571 69.9KB/s 00:00 # 鍵が送れた。
手順・ サーバー
- :~$ cd ~/.ssh # ~/.sshのディレクトリに移動
- :~/.ssh$ ls # authorized_keysがあるか確認。もしあれば、公開認証鍵が送られている。
- :~/.ssh$ chmod 600 authorized_keys # authorized_keysに権限を与える。
- :~$ sudo vim /etc/ssh/sshd_config # 設定変更
- :~$ sudo /etc/init.d/ssh restart #sshの再起動...ちなみにサーバーの再起動では反映されないから注意
:~$ cd ~/.ssh # ~/.sshのディレクトリに移動 :~/.ssh$ ls # authorized_keysがあるか確認。もしあれば、公開認証鍵が送られている。 authorized_keys :~/.ssh$ chmod 600 authorized_keys # authorized_keysに権限を与える。 :~/.ssh$ cd :~$ sudo vim /etc/ssh/sshd_config # 設定変更 :~$ sudo /etc/init.d/ssh restart #sshの再起動...ちなみにサーバーの再起動では反映されないから注意 [ ok ] Restarting ssh (via systemctl): ssh.service. :~$
ssh接続 ・ rootログインなし・ポート22ログインなし・パスワード認証なしでログイン
$ ssh root@アドレス #rootログイン 失敗でOK ssh: connect to host アドレス port 22: Connection refused $ ssh usename@アドレス #デフォルトのport22 失敗でOK ssh: connect to host アドレス port 22: Connection refused $ ssh usename@アドレス -p xxxx # /etc/ssh/sshd_configに設定したpirt番号 ログイン成功 Linuxxxxxxxxxxxxx-amdxx #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Apr xxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx :~$