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
それではまた次回。