03.さくらインターネットVPSを使ってみる。〜複数のMacからssh接続〜

注意事項
サーバー管理については全くの素人が調べながら書いているので、セキュリティ的に脆弱な設定方法などが多々あると思われます。詳しい方は優しくご指摘いただけると幸いです。

さて、前回まででssh公開鍵暗号で接続することは出来る様になりました。が、自宅用Macと外出用Macなど複数台クライアントからサーバーに接続したい時があると思います。そこで、今回は複数のクライアントから接続できるように変更してみます。まあ、秘密鍵を複数登録するだけなんですけどね。。。

まずは、前回と同様で接続したいクライアントで公開鍵・秘密鍵を作成します。

「ssh-keygen -t rsa」で鍵を作ります。「Enter file in〜」ファイルを保存するみたいな事を聞いてくるのでそのままEnterを押下します。

最後に 「Enter passphrase」と聞いてくるので、適当な文字を入力してEnterを押下します。もう一度聞いてくるので再度おなじ文字を入力してEnterを押下します。

ssh-keygen -t rsa
Enter file in which to save the key (/Users/tochi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

さて、ここからsftpで接続して秘密鍵を送信したい所ですが、サーバー側でパスワード認証を拒否するように設定したので接続できません。そこで、一度パスワード認証を許可して秘密鍵を送信してから再度パスワード認証を拒否するようにします。(この辺りもっとスマートなやり方があるんじゃないかな?)

さくらインターネットにはWebブラウザ経由でサーバーに接続できるリモートコンソールという機能があります。仮登録の際に届いたメールから「VPSコントロールパネル>リモートコンソール」にアクセスします。パスワード認証を拒否したのはssh接続からなので、リモートコンソールからはパスワードでログインする事ができます。

まずはログインするユーザーを「root」として入力し、次にパスワードを入力してログインを行います。

root
Password:

次にsshの設定を変更します。「vi /etc/ssh/sshd_config」と入力します。

vi /etc/ssh/sshd_config

開かれたsshd_configの中に「PermitRootLogin without-password」という箇所があるので、下記の様に変更します。前回変更した場所ですね。

viでは入力する箇所で「i」キーを押下すると入力モードになります。変更したら「esc」を押下してコマンドモードに戻り「:wq」と入力して上書きして終了します。

PermitRootLogin yes

sshのサービスを再起動します。「/etc/rc.d/init.d/sshd reload」と入力すると「〜[OK]」と表示されれば正常に再起動されました。

/etc/rc.d/init.d/sshd reload
Reloading sshd:                                            [  OK  ]

クライアントに戻って、sshで接続を試みるとパスワードで接続出来る様になっているはずです。ポート番号は変更しているのでポート番号指定は忘れずに。接続できたら一度ログアウトします。

ssh root@xxx.xxx.xxx.xxx -t 4022
logout

公開鍵をサーバーに送信します。「sftp -oPort=40022 root@【サーバーのIPアドレス】」と入力してEnterを押下するとパスワード入力が求められるのでパスワード入力してEnterを押下します。「sftp>」と表示されれば接続は完了です。sftpもssh経由でftp接続するのでsshのポート番号を変更した場合にはポート番号を指定して接続する必要があります。

sftp -oPort=40022 root@xxx.xxx.xxx.xxx
password:
sftp>

接続したら前回と同様に「put .ssh/id_rsa.pub」と入力してEnterを押下すると、「Uploading〜」と表示された後にファイルが送信されます。「quit」と入力してsftpを終了します。

put .ssh/id_rsa.pub
Uploading .ssh/id_rsa.pub to /root/id_rsa.pub
.ssh/id_rsa.pub                                                                                                                              100%  418     0.4KB/s   00:00
quit

sshでサーバーに接続して、「cat id_rsa.pub >> .ssh/authorized_keys」と入力してサーバーの公開鍵に新しいクライアントの公開鍵を追記します。公開鍵にはコンピューター名などが記述されている様で、ひとつの鍵をコピーして使い回す事が出来なかったんですね。(本当はできるのかも。誰か、教えてください)

ssh root@xxx.xxx.xxx.xxx -t 4022
cat id_rsa.pub >> .ssh/authorized_keys

あとは再度パスワード認証を拒否するように設定し、サービスを再起動したら一度ログアウトします。

vi /etc/ssh/sshd_config
PermitRootLogin without-password

/etc/rc.d/init.d/sshd reload
Reloading sshd:                                            [  OK  ] logout

sshで接続するとパスワード無しで、公開鍵認証方式でログインができるようになったと思います。

ssh root@xxx.xxx.xxx.xxx -t 4022

それではまた次回。