LinuxパソコンにWindowsパソコンからリモートログインして、Linux上でビルドしたりコードを書いたりしますが、
リモートログインの手段としては、VNCやSSH、telnetがあります。
VNCは貧弱なパソコンだと動作が重いし、telnetは通信に暗号化が掛かっていません。
そこでSSHにすることでこの両方が解決します。
Ubuntu20.04で、SSHを使用するための設定手順を書いていきます。(Ubuntu18.04でも確認済みです。)
1.SSHとは
SSHとは、Secure Shellの略で、telnetのようにリモートでパソコンに接続できます。
telnetと異なるのは、全てのネットワーク上の通信が暗号化されるところにあります。
なので会社内でよく使われるのは、telnetよりSSHの方がよく使われます。
2.SSHクライアントのパッケージ確認
Ubuntu20.04もUbuntu18.04と同様に、SSHのクライアントソフトが既にインストールされています。
本当にインストールされているかの確認は、以下のコマンドで確認できます。
$ dpkg -l | grep ssh
3.SSHサーバーのインストール
Ubuntu20.04もUbuntu18.04と同様に、SSHのサーバーソフトがインストールされていません。
そのため、自分でインストールする必要があります。
以下のコマンドでインストールします。
$ sudo apt install -y openssh-server
本当にインストールされているかの確認は、先ほど使ったコマンドで確認できます。
$ dpkg -l | grep ssh
表示結果に、openssh-serverが含まれていれば大丈夫です。
そして、起動方法は、インストールした時点で起動しているので、特に何もしなくて大丈夫です。
起動しているかの確認は、
$ ps -ax | grep ssh
とすると、
manta@manta-p6-2150jp:~$ ps -ax | grep ssh
2994 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
4960 ? Ss 0:00 /usr/sbin/sshd -D
5178 pts/0 S+ 0:00 grep --color=auto ssh
のように出力されて、SSHサーバーである/usr/sbin/sshdが起動していることが確認できます。
4.WindowsからのSSH接続確認
TeraTermを開いたら、ホストのIPアドレスを入力して、サービスはSSHを選択します。
ホストのIPアドレスがわからない場合は、会社なら誰かに教えてもらうか、
自宅なら、このコマンドで調べることができます。
$ ip address
「OK」を押すと、初めて接続する場合は、セキュリティの警告のウィンドウが出ます。
「続行」を押すとログイン画面になります。
ここで、「このホストをknown hostsリストに追加する(A)」のチェックをせずに、ログインすることもできますが、
接続する度に、この警告ウィンドウが表示されますので、チェックを入れて接続する方が良いです。
「続行」を押してUbuntu上に存在するアカウントでログインします。
5.ユーザーの追加
ユーザーは、Ubuntu上に存在するアカウントなので、Ubuntuにアカウントを作成するコマンドで追加できます。
がuseraddコマンドではなく、adduserコマンドを使います。
$sudo adduser (ユーザー名)
例として、testというユーザーを追加してみると、こんな感じです。
対話形式でパスワード設定とユーザ情報を入力する形になります。
ユーザ情報は特に必要なければ、何も入力せずリターンキーを押すで大丈夫です。
manta@manta-p6-2150jp:~$ sudo adduser test
ユーザー `test' を追加しています...
新しいグループ `test' (1001) を追加しています...
新しいユーザー `test' (1001) をグループ `test' に追加しています...
ホームディレクトリ `/home/test' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
test のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
フルネーム []:
部屋番号 []:
職場電話番号 []:
自宅電話番号 []:
その他 []:
以上で正しいですか? [Y/n] Y
manta@manta-p6-2150jp:~$
6.ルートログインの無効化
ubuntuは、インストールしてから自分でルートパスワード設定をしていなければ、
ルートパスワードは何も設定されていない状態になっています。
なので、rootでログインしようとしても、そもそもできません。
そして、rootパスワードを設定したとしてもSSHのデフォルト設定でルートログイン
は許可されていないので、既に無効化されている状態になっています。
ちなみにルートログインする設定は簡単です。
このファイル内にある
#PermitRootLogin prohibit-password
を
PermitRootLogin yes
に修正します。
2)sshdの再起動
ファイル修正後、下記のコマンドでsshdを再起動します。
$ sudo systemctl restart sshd
rootでログインできるようにすることは、セキュリティ上お勧めしません。
7.まとめ
telnetよりSSHの方がサーバーをインストールするだけなので簡単です。
そしてセキュリティのことを考えるとSSHの方が安全です。
<関連・おすすめ記事>
Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車
Sambaサーバーの設定手順(Ubuntu18.04)とWindowsからのアクセス方法
Sambaサーバーの設定手順(RaspberryPi)とWindowsからのアクセス方法
Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5
Bluetoothでマルチペアリング(複数台接続)できるマウスのおすすめランキングベスト5
Bluetoothでマルチペアリング(複数台接続)できるキーボードのおすすめランキングベスト5 - 水瓶座列車