①conoHa VPSの契約をする
このはVPSのページからVPSの契約を行う。初期費用は無いし、定額で使える(学割もある)。自分が契約したサーバーは以下の設定だ。
リージョン 東京
メモリ 1GB/CPU 2Core
ディスク SSD100G
OS CentOs stream8
LAMP環境やWordPressとかの環境をボタン一つで構築できる。今回は入れずにやっている。設定時のroot権限でのログインに必要なパスワードは控えておく。SSH Keyは後で設定するので、ここでは設定しない。
②root権限でログインし、一般ユーザーを設定する
root権限でログインする。conoHaに設置されているターミナルでもいいですが、最初からMac備え付けのターミナルを使います。
ssh root@IPアドレス
password:初期設定したrootログイン用のパスワード
また、この先の設定でサーバー側とクライアント側の両方のファイルを同時に操作できると楽になるので、ここで他のターミナルソフトを一つダウンロードしてもいいでしょう。自分はiTermを使っています。
次に一般ユーザーを設定します。
useradd 任意のユーザー名(英数字)
passwd useraddで追加したユーザー名
New password:任意のパスワード
Retype new password:もう一度入力
これで一般ユーザーを作成できました。一度、logoutをしてから、一般ユーザーでログインできるか確認します。
ssh 追加した一般ユーザー名@IPアドレス
password:作成した一般ユーザーのパスワード
③rootログインを禁止する
自分は後で設定してもいいと思っているのですが、忘れないためにここに書きます。
cd /etc/ssh
ls
sshディレクトリの中に、sshd_configがあるのかを確認します。似たディレクトリがいくつかありますので、間違えないようにしましょう。自分の場合は、ssh_configとsshd_config.dがありました。
vi sshd_config
/PermitRootLogin ← /でvim内を検索できます
PermitRootLogin yes ← noに変更する
vimの内容を変更するにはiでINSERTモードにします。入力したら、escを押して、:wqで元のターミナル画面に戻る事ができます。
一度、ログアウトしてrootログインを禁止できたか、確認するとできていない事があります。そのまま、何故か入れる状態にありますが、時間が経つと反映されているので問題ありません。
Permission denied, please try again.
自分のターミナルでは直接rootログインしようとすると、このエラーが吐かれます。
rootユーザーへ一般ユーザーから切り替えるには、一般ユーザーでログインしてから、
su -
password:rootユーザーのパスワード
でroot権限に変更できます。
④公開鍵、秘密鍵の設定を行う
まずは一般ユーザーでログインし、
cd /etc/ssh
ls
で中身を確認します。
moduli ssh_host_ecdsa_key ssh_host_*****_key.pub sshd_config
ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key
ssh_config.d ssh_host_*****_key ssh_host_rsa_key.pub
この中に、ssh_host_ecdsa_key、ssh_host_ecdsa_key.pubなどの末尾がkeyやkey.pubになっているものが公開鍵、秘密鍵です。末尾がkeyのものは秘密鍵、key.pubのものは公開鍵です。
今回はssh_host_ecdsa_key、ssh_host_ecdsa_key.pubの組みを使います。名前の似たもの同士が対となる鍵なので注意しましょう。
sudo cat ssh_host_ecdsa_key
[sudo]password for 一般ユーザー名:一般ユーザーのパスワード
で中身を確認します。中身は
-----BEGIN OPENSSH PRIVATE KEY-----
(この中に鍵の暗号が入っている)
-----END OPENSSH PRIVATE KEY-----
この暗号をコピーしておきます。注意点は始めと終わりのbegin endまで全てをコピーしなければ、鍵として使えない事です。テキストエディットに貼り付けて保存しておきましょう。名前はssh_host_ecdsa_keyで端子は何も付けません。
一度、ログアウトしてログインしない状態のMac側の操作をします。この時、もう一つターミナルソフトがあるとログアウトせずに済むので便利です。
cd .ssh
ls
で中身を確認します。
known_host
ここに秘密鍵を一度置きます。
touch ssh_host_ecdsa_key
vi ssh_host_ecdsa_key
でvimを起動して、INSERTモードにします。秘密鍵の中身を貼り付けてesc :wqで保存して置きます。
次に一般ユーザーでログインをしてcdで/etc/sshに行きます。そこにあるssh_host_ecdsa_key.pubをsudo権限で開きます。これをコピーして、次に
cd .ssh
touch ssh_host_ecdsa_key.pub
vim ssh_host_ecdsa_key.pub
これで中身をペーストしておく。次に権限とこの公開鍵をサーバーに登録する操作。
cd
chmod 700 .ssh
cd .ssh
cat ssh_host_ecdsa_key.pub >> authorized_keys
chmod 600 authorized_keys
rm -fv ssh_host_ecdsa_key.pub
何故権限を変更するのかはよくわからないので、自分がやった手順だけを載せる。.sshにauthorized_keyが設置できていれば問題ない。.sshにある元のssh_host_ecdsa_key.pubは邪魔なので削除。
⑤FTPソフトでSFTP接続を行う
まずは公開鍵認証でsshに接続できるかをターミナルでテストする。
ssh -i ~/.ssh/ssh_host_ecdsa_key ユーザー名@IPアドレス
とりあえず繋がったら、FTPソフトを入れる。今回はfileZillaを使います。ダウンロードして開く事ができたら、
りんごマークの隣にあるfilezillaから設定に飛びます。SFTPを押すと、秘密鍵を設置するように言われるので、テキストエディットで保存したssh_host_ecdsa_keyを指定します。
次にサイトマネージャーをクリックしてホストにIPアドレス、プロトコルはSFTP、ログオンは通常、ユーザーは一般ユーザー名を入力する。パスワードは書かない。これで上部にある新規サイト - sftp://ユーザー名@IPアドレスになっていればsftp接続されているということになります。
最後に
SFTP接続だけでも初心者はきついです。何度もサーバーを再構築し直して、やっとできるまでに一ヶ月かかりました。こうやって方法を書いておかないと忘れそうです。実際にSFTP接続できるようになったのも一連の作業時間は10時間。それまでに何度もエラーと闘う日々。次に同じ環境を作るときの備忘録を兼ねて情報をここに載せておきます。