2020-08-04

さくらVPSでSSH設定あれこれ

さくらVPSサーバのSSH設定をする機会は殆んどないので忘れないようにメモしておきます。サーバはCentOS6対応です。

https://help.sakura.ad.jp/206208161/
を参考にして、公開鍵認証を使ったログイン設定を行いました。公開鍵と秘密鍵の生成はtera termではなくWinSCPをダウンロードしたときに付いていたPuTTYgenで行いました。鍵生成についてはこちら

https://ja.osdn.net/projects/winscp/wiki/ui_puttygen
http://www.koikikukan.com/archives/2013/01/15-000300.php

が参考になりました。公開鍵を保存するユーザー名をhomepageとしてhomepageにはsudo権限を付与します。

# useradd homepage
# usermod -G wheel homepage

ただし、初めての場合はこちらを参考にvisudoコマンドで /etc/sudoers を編集する必要あり。homepageアカウントで /home/homepage/ ディレクトリに入り以下のコマンドを実行。

$\$$ mkdir .ssh                                 # ディレクトリ作成
$\$$ chmod 700 .ssh/                       # 自分以外のアクセスを禁止
$\$$ ls -al                                         # 内容確認
$\$$ cd .ssh
$\$$ vi authorized_keys        # 公開鍵 id_rsa.pub をコピペ
$\$$ chmod 600 authorized_keys        # 自分以外の読み書きを禁止
$\$$ ls -al                                         # 内容確認

ただし、ここでauthorized_keys に貼り付ける内容は

ssh-rsa AAA

から始めまる文字列のべた書きです。PuTTYgenで生成されたid_rsa.pubファイルは

---- BEGIN SSH2 PUBLIC KEY ----

から始まる整形された文字列なのでこれを使うと大変なことになります。というのも、私は最初、まあ大丈夫だろうと、下記のSSH設定で公開鍵ログインしかできないようにしてからターミナルを閉じてさあログインしようとすると全くサーバにアクセスできなくなり途方にくれました!その後10分ぐらいボ~~としてから、気を取り直して「さくらVPSのコントロールパネル」にあるシリアルコンソール(β版)を立ち上げて何とか /etc/ssh/sshd_config を編集することが出来、九死に一生を得るという二度と経験したくない状況に陥ったからです。賢明なる皆さんはそんなことは無いでしょうが、公開鍵(authorized_keys)の形式にはくれぐれも注意してください。

さて無事に公開鍵を保存出来たら、SSHの設定ファイルで編集。

sudo vi /etc/ssh/sshd_config

関連個所を

#PermitRootLogin yes
PermitRootLogin no
PermitEmptyPasswords no
#PasswordAuthentication yes
PasswordAuthentication no

などとして保存し、sshdを再起動

sudo service sshd restart

すると設定が反映されます。上の設定では

1.SSH で root アカウントでのログインを許可しない
2.パスワード認証を許可しない

というこちらで推奨されている「より安全な SSH 接続のための設定」になっています。必要であれば Port 番号も変更すると良いでしょう。

これでターミナル(putty)もWinSCPも公開鍵ログインできるようになりましたが、これまでWinSCPではroot権限でログインしていたので開発のためのファイル転送が sudo権限があるとはいえ homepage アカウントだけでは上手くいきません。(パーミッションが得られない。)そこで


を参考にsudoersを編集したりしていろいろ試しましたが結局パーミッションが得られませんでした。今後、開発する際は rootログインを一時的に許可したほうがよさそうです。ということで、rootについても公開鍵を設置しました。設置場所は直下の /root/.ssh/authorized_keys でOKです。ただし、上記の通りchmodでディレクトリ、ファイルの属性を変更する必要があります。

0 件のコメント: