hetemlへ公開鍵認証でSSH接続するには

heteml(ヘテムル)は、SSH接続できるレンタルサーバです。ヘテムルのコントロールパネルでSSHアカウントを設定した直後は、パスワード認証だけです。そこで、公開鍵認証でもSSH接続できるようにします。

公開鍵認証を設定したら、パスワード認証はどうなるのかな?

どちらも使えるから安心して

パスワード認証の確認

SSH のご利用方法
hetemlでは、SSH(secure shell)をどなたでも無料でお使い頂けます。SSHを利用すると、ネット上での通信や操作を安全に行なうことができます。 SSH とは  SSH(secure shell)は 、パスワードを含むすべての通信を暗号化し、ネットワークの盗聴などを排除することができる接続方法です。Tel...
ターミナル(Mac)
ターミナル とは? ターミナルは、Mac OS X で利用可能な、ファイル操作などを文字ベースで行うためのアプリケーションです。ターミナルを利用してSSH接続を行うと、ローカルとリモートの間でファイルを安全にコピー出来ます。 ターミナルの操作にはコマンドの入力が必要となりますので、コマンドに詳しい方はこちらをお使いくだ...

ヘテムルのマニュアルを参考にしながら、パスワード認証でSSH接続できることを確認してください。ヘテムルIDを 1234example、SSHサーバが 1234example-heteml.net なら、次のように実行します。

SSHパスワードを入力します。

$ ssh -p 2222 1234example@1234example-heteml.net 1234example@1234example-heteml.net's password:

ヘテムルIDの先頭に数字は使えないよ

説明のための架空のヘテムルIDよ

Windows 10

Windows 10では、コマンドプロンプトでsshやssh-keygenを使えるようになりました。

以前はどうしてたの?

PuTTYとPuTTYgenを使ってたわ

PuTTYはどう読むの?

公式には「パティ」らしいけど、
「プッティ」で通じることが多いわね。

キーペア作成

キーペアのファイル数が少なければ %HOME%\.ssh\ 直下に作成してもいいですし、キーペアのファイル数が多ければ、%HOME%\.ssh\ にサブディレクトリを作って、整理してもいいです。

ここでは、id_rsa_heteml、id_rsa_heteml.pub を作成します。

途中で、パスフレーズを入力してください。パスフレーズはパスワードマネージャーなどで管理してください。

> cd > mkdir .ssh > cd .ssh > ssh-keygen -t rsa -f id_rsa_heteml Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: > dir /B id_rsa_heteml id_rsa_heteml.pub

pub付きが、公開鍵

pub無しが、秘密鍵

ヘテムルに公開鍵をコピー

Windows 10のコマンドプロンプトを起動します。

scpコマンドで、公開鍵をヘテムル側の ~/.ssh/authorized_keysにコピーします。

まず、ヘテムルにパスワード認証でSSHログインして、~/.ssh/authorized_keys を作成します。

> ssh 1234example@ssh-1234example.heteml.net 1234example@1234example-heteml.net's password: $

.sshディレクトリを作成して、ファイルモードを 700 に設定します。ls -al して、「drwx---r-x」ではなく、「drwx------」 であることを確認します。

$ mkdir .ssh $ chmod 700 .ssh $ ls -al (省略) drwx------ 2 xxxxx HetemlUser 4096 2020-05-07 09:42 .ssh (省略)

.sshディレクトリにcdして、authorized_keysファイルを作ります。ls -l して、「-rw----r--」ではなく、「-rw-------」であることを確認します。

$ cd .ssh $ touch authorized_keys $ chmod 600 authorized_keys $ ls -l -rw------- 1 xxxxxx HetemlUser 0 2020-05-06 17:35 authorized_keys

ヘテムルからlogoutします。

$ logout >

Windows 10のコマンドプロンプトに戻ってきました。

scpで、id_rsa_heteml.pub を ヘテムル側の .ssh/authorized_keys にコピーします。パスワード認証のパスワードを入力します。

> scp id_rsa_heteml.pub 1234example@ssh-1234example.heteml.net:~/.ssh/authorized_keys 1234example@1234example-heteml.net's password:

公開鍵認証でSSHログインできるはずです。-i オプションには「秘密鍵(pub無し)」を指定します。秘密鍵のパスフレーズを入力してください。

$ ssh -i id_rsa_heteml 1234example@ssh-1234example.heteml.net Enter passphrase for key 'C:\Users\aoki.makoto\.ssh\heteml':

.ssh/configに登録

SSH接続する機会が多ければ、さきほどのコマンドを入力するのは面倒です。

めったにSSH接続しないのなら、さきほどのコマンドを忘れています。

そこで、%HOME%\.ssh\configに登録しておきます。IdentityFileは、C:\から始まる絶対パスを設定してください。

Host heteml # 2020-04-06 HostName ssh-1234example.heteml.net User 1234example Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile C:\Users\aoki.makoto\.ssh\id_rsa_heteml IdentitiesOnly yes LogLevel FATAL

%HOME%\.ssh\configに登録しておくと、SSH接続でHost名を指定するだけでよくなります。Host名を忘れたら、%HOME%\.ssh\config を見ればわかります。

$ ssh heteml Enter passphrase for key 'C:\Users\aoki.makoto\.ssh\id_rsa_heteml':

.ssh/config のことも忘れそうだな

ネットで調べているうちに思い出せるといいわね

ssh-agent

ssh-addを使う前に、ssh-agentを起動しておく必要があります。サービスとして自動起動するので、PC再起動後もssh-agentサービスが自動起動しています。手作業でssh-agentを起動する必要はありません。

管理者モードでコマンドプロンプトを起動してください。

次のコマンドで、ssh-agentを起動してください。

> sc config ssh-agent start=auto > sc start ssh-agent

管理者モードのコマンドプロンプトを閉じてください。

これまで作業していた通常モードのコマンドプロンプトはいったん閉じて、あらたに通常モードのコマンドプロンプトを起動してください。

ssh-add

パスフレーズの入力も面倒なんだけど

SSHログインするときは、その日のうちに何回もSSHログインするものです。すると、毎回、秘密鍵のパスフレーズを入力するのも面倒になります。

そこで、ssh-addコマンドで、秘密鍵とパスフレーズを登録しておきます。以後、パスフレーズを入力することなく、SSHログインできます。

$ ssh-add %HOME%\.ssh\id_rsa_heteml Enter passphrase for C:\Users\aoki.makoto\.ssh\id_rsa_heteml:

もし次のようなエラーが表示されたら、ssh-agentが起動していません。ssh-agentを起動してください。

$ ssh-add %HOME%\.ssh\id_rsa_heteml Could not open a connection to your authentication agent.

%HOME%.ssh\configを使わない方法で、sshログインしてください。秘密鍵のパスフレーズを聞かれません。

$ ssh -p 2222 1234example@1234example-heteml.net

残念ながら、%HOME%\.ssh\config に登録したHost名でSSH接続すると、パスフレーズを聞かれてしまいます。

$ ssh heteml Enter passphrase for key 'C:\Users\aoki.makoto\.ssh\id_rsa_heteml':

これができたらいいのにね

パスワード認証でログインする場合は、ssh-add -Dで、ssh-addした秘密鍵とパスフレーズを削除してから、sshログインします。

$ ssh-add -D $ ssh -p 2222 1234example@1234example-heteml.net 1234example@1234example-heteml.net's password:

Mac OS X

キーペア作成

キーペアのファイル数が少なければ ~/.ssh/ 直下に作成してもいいですし、キーペアのファイル数が多ければ、~/.ssh/ にサブディレクトリを作って、整理してもいいです。

ここでは、id_rsa_heteml、id_rsa_heteml.pub を作成します。

途中で、パスフレーズを入力してください。パスフレーズはパスワードマネージャーなどで管理してください。

$ cd ~ $ mkdir .ssh $ chmod 700 .ssh $ cd .ssh $ ssh-keygen -t rsa -f id_rsa_heteml Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: $ ls id_rsa_heteml id_rsa_heteml.pub

pub付きが、公開鍵

pub無しが、秘密鍵

ヘテムルに公開鍵をコピー

ssh-copy-idコマンドで、公開鍵をヘテムル側の ~/.ssh/authorized_keysに追加します。

-i オプションには「公開鍵(pub付き)」を指定します。

$ ssh-copy-id -i id_rsa_heteml.pub 1234example@ssh-1234example.heteml.net

公開鍵認証でSSHログインできるはずです。

-i オプションには「秘密鍵(pub無し)」を指定します。

秘密鍵のパスフレーズを入力してください。

$ ssh -i ~/.ssh/id_rsa_heteml 1234example@ssh-1234example.heteml.net Enter passphrase for key '/Users/aoki.makoto/.ssh/id_rsa_heteml':

.ssh/configに登録

SSH接続する機会が多ければ、さきほどのコマンドを入力するのは面倒です。

めったにSSH接続しないのなら、さきほどのコマンドを忘れています。

そこで、~/.ssh/configに登録しておきます。

Host heteml # 2020-04-06 HostName ssh-1234example.heteml.net User 1234example Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile ~/.ssh/id_rsa_heteml IdentitiesOnly yes LogLevel FATAL UseKeyChain yes AddKeysToAgent yes

~/.ssh/configに登録しておくと、SSH接続でHost名を指定するだけでよくなります。Host名を忘れたら、~/.ssh/config を見ればわかります。

> ssh heteml Enter passphrase for key '/Users/aoki.makoto/.ssh/id_rsa_heteml':

.ssh/config のことも忘れそうだな

ネットで調べているうちに思い出せるといいわね

ssh-add

パスフレーズの入力も面倒なんだけど

SSHログインするときは、その日のうちに何回もSSHログインするものです。すると、毎回、秘密鍵のパスフレーズを入力するのも面倒になります。

そこで、ssh-addコマンドで、秘密鍵とパスフレーズを登録しておきます。以後、パスフレーズを入力することなく、SSHログインできます。

-K オプションをつけると、キーチェーンにパスフレーズも記憶されるので、PC再起動後に ssh-add する必要がありません。

$ ssh-add -K ~/.ssh/id_rsa_heteml Enter passphrase for /Users/aoki.makoto/.ssh/id_rsa_heteml:

もし次のようなエラーが表示されたら、ssh-agentが起動していません。ssh-agentを起動してください。

$ ssh-add -K ~/.ssh/id_rsa_heteml Could not open a connection to your authentication agent. $ eval $(ssh-agent -s) Agent pid 13244

sshログインしてください。秘密鍵のパスフレーズを聞かれません。

$ ssh heteml

パスワード認証でもsshログインできます。秘密鍵のパスフレーズではなく、ヘテムルのコントロールパネルで設定したSSHパスワードです。

$ ssh -p 2222 1234example@1234example-heteml.net 1234example@1234example-heteml.net's password:

Ubuntu 18.04

キーペア作成

キーペアのファイル数が少なければ ~/.ssh/ 直下に作成してもいいですし、キーペアのファイル数が多ければ、~/.ssh/ にサブディレクトリを作って、整理してもいいです。

ここでは、id_rsa_heteml、id_rsa_heteml.pub を作成します。

途中で、パスフレーズを入力してください。パスフレーズはパスワードマネージャーなどで管理してください。

$ cd ~ $ mkdir .ssh $ chmod 700 .ssh $ cd .ssh $ ssh-keygen -t rsa -f id_rsa_heteml Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: $ ls id_rsa_heteml id_rsa_heteml.pub

pub付きが、公開鍵

pub無しが、秘密鍵

ヘテムルに公開鍵をコピー

ssh-copy-idコマンドで、公開鍵をヘテムル側の ~/.ssh/authorized_keysに追加します。

-i オプションには「公開鍵(pub付き)」を指定します。

$ ssh-copy-id -i id_rsa_heteml.pub 1234example@ssh-1234example.heteml.net

公開鍵認証でSSHログインできるはずです。

-i オプションには「秘密鍵(pub無し)」を指定します。

秘密鍵のパスフレーズを入力してください。

$ ssh -i ~/.ssh/id_rsa_heteml 1234example@ssh-1234example.heteml.net Enter passphrase for key '/home/aoki/.ssh/id_rsa_heteml':

.ssh/configに登録

SSH接続する機会が多ければ、さきほどのコマンドを入力するのは面倒です。

めったにSSH接続しないのなら、さきほどのコマンドを忘れています。

そこで、~/.ssh/configに登録しておきます。

Host heteml # 2020-04-06 HostName ssh-1234example.heteml.net User 1234example Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /home/aoki/.ssh/id_rsa_heteml IdentitiesOnly yes LogLevel FATAL

~/.ssh/configに登録しておくと、SSH接続でHost名を指定するだけでよくなります。Host名を忘れたら、~/.ssh/config を見ればわかります。

$ ssh heteml Enter passphrase for key '/home/aoki/.ssh/id_rsa_heteml':

.ssh/config のことも忘れそうだな

ネットで調べているうちに思い出せるといいわね

ssh-add

パスフレーズの入力も面倒なんだけど

SSHログインするときは、その日のうちに何回もSSHログインするものです。すると、毎回、秘密鍵のパスフレーズを入力するのも面倒になります。

そこで、ssh-addコマンドで、秘密鍵とパスフレーズを登録しておきます。以後、パスフレーズを入力することなく、SSHログインできます。

PC再起動後、sshログイン前に一度は、ssh-addする必要があります。

$ ssh-add ~/.ssh/id_rsa_heteml Enter passphrase for /home/aoki/.ssh/id_rsa_heteml:

もし次のようなエラーが表示されたら、ssh-agentが起動していません。ssh-agentを起動してください。

$ ssh-add ~/.ssh/id_rsa_heteml Could not open a connection to your authentication agent. $ eval $(ssh-agent -s) Agent pid 13244

sshログインしてください。秘密鍵のパスフレーズを聞かれません。

$ ssh heteml

パスワード認証でもsshログインできます。秘密鍵のパスフレーズではなく、ヘテムルのコントロールパネルで設定したSSHパスワードです。

$ ssh -p 2222 1234example@1234example-heteml.net 1234example@1234example-heteml.net's password:
企業サイトや人気サイトの運用実績多数!月額800円(税抜)~の高スペックレンタルサーバー
タイトルとURLをコピーしました