lolipopでSSH接続(スタンダード契約以上)

SSH接続はスタンダードプラン以上で可能

なぜSSH接続を使うのか?

  • lolipopサーバの自分のフォルダを操作するため
  • コマンドの実行やファイルのやり取りなどに使える
  • 私が使用しているアプリケーションはTeraTerm、PuTTY、WinSCP、TortoiseSVNなどです
  • pythonのpip3でパッケージを入れたりできる

SSH接続の情報

ユーザー専用ページ →サーバーの管理・設定 →SSH

lolipopではSSHを有効にしてから使用してください

サーバーSSH接続する先のサーバ名またはIPアドレス
アカウントSSH接続時のユーザ名
接続ポート接続先のポート番号
SSHパスワードパスワード

※公開鍵式方式でSSH接続することも可能なようです。その際はSSHで接続してから鍵の登録などを自分でおこなうことになります。
 設定画面から行うことはできないようです

公開鍵式方式でSSH接続する方法は後述してます。
パスワードだけの運用よりは公開鍵方式のほうがセキュリティ的に良い。

windows11のコマンドプロンプトのsshで接続(SSHパスワードを使用)

ssh アカウント@ssh.lolipop.jp -p 2222
パスワードを入力

※powershellでも同じように接続できた

TeraTermで接続(SSHパスワードを使用)

ユーザ名にはアカウント
パスフレーズにはSSHパスワード
※パスワードを貼り付ける場合はShift+Insertで貼り付ける必要がある

公開鍵方式を使ってコマンドプロンプトでssh接続

windows標準の機能で公開鍵と秘密鍵を作成する

コマンドプロンプトを起動して公開鍵と秘密鍵のペアを作成する
今回は鍵のファイルパスを指定して作成した
パスフレーズは空白のままとした(Enterキーのみ)
id_ed25519_2(秘密鍵)とid_ed25519_2.pub(公開鍵)が作成される
キーに含めるコメント(ーCで指定する文字列)は日本語ではなく英数字で入力したほうが良い

C:\Users\test>ssh-keygen -t ed25519 -C "適当な文字列"
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\test/.ssh/id_ed25519): C:\Users\test/.ssh/id_ed25519_2
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\test/.ssh/id_ed25519_2
Your public key has been saved in C:\Users\test/.ssh/id_ed25519_2.pub
The key fingerprint is:
SHA256:eYzxxxxxxxxxxxxxxxtLC9s 適当な文字列
The key's randomart image is:
+--[ED25519 256]--+
|     ooo         |
|  o o++o         |
|  o o++o         |
|  o o++o         |
+----[SHA256]-----+

サーバに公開鍵をセット

/home/users/2/pepper.jp-xxxxxx/.ssh/authorized_keysを作成する

[pepper.jp-xxxxxxxx@std009 ~]$ mkdir ~/.ssh
[pepper.jp-xxxxxxxx@std009 ~]$ chmod 700 ~/.ssh
[pepper.jp-xxxxxxxx@std009 ~]$ touch ~/.ssh/authorized_keys
[pepper.jp-xxxxxxxx@std009 ~]$ chmod 600 ~/.ssh/authorized_keys

authorized_keysファイルに公開鍵(C:\Users\test/.ssh/id_ed25519_2.pubの中身)を追加する

ssh-rsa AAAA・・・・・ZuAF pepper.jp-xxxxxx@std009.phy.lolipop.jp
ssh-ed25519 AAAA・・・・・Ql93 ssssssu@windowsXXXX
ssh-ed25519 AAAA・・・・・USmM 適当な文字列               ←このように追記する

この例では3つキーが登録された状態
一番右の文字列はキー作成時の「-C」で指定した何のキーなのか識別するための文字列です

windows11のコマンドプロンプトのsshで接続する

C:\Users\test>ssh pepper.jp-xxxxx@ssh.lolipop.jp -p 2222 -i C:/Users/test/.ssh/id_ed25519_2 -o UpdateHostKeys=no
[pepper.jp-xxxxx@std009 ~]$ ls -al
合計 5388
drwx-----x 12 pepper.jp-xxxxx LolipopUser    4096  9月 11  2022 .
drwx--x--x 70 root                       root           4096  9月 19 16:06 ..
-rw-------  1 pepper.jp-xxxxx LolipopUser    8830 10月  9 22:41 .bash_history
-rw-r--r--  1 pepper.jp-xxxxx LolipopUser      76  3月 19  2022 .bash_profile

-iで指定するファイルは自分のユーザのフォルダ内などにしないとエラーになってしまう
たとえばEドライブとかeveryoneがついてるフォルダだったりするとキーを読み込めずにエラーになる仕様のようです

あらかじめ接続情報を登録しておくことで、接続時に簡略化できる

C:/Users/test/.ssh/configに次のようにlolipopと名前を付けた接続情報を書いておく

Host lolipop
    HostName ssh.lolipop.jp
    User pepper.jp-xxxxx
    Port 2222
    IdentityFile C:/Users/test/.ssh/id_ed25519_2
    IdentitiesOnly yes
    UpdateHostKeys no
    BatchMode yes
C:\Users\test>ssh lolipop
[pepper.jp-xxxxx@std009 ~]$

このように名前を指定するだけで接続できる

秘密鍵をPuTTY形式(ppk)に変換

PuTTY/Plink/TortoisePlink/Pageant/WinSCP(Windows) などで鍵を指定する場合のために鍵の形式を変換したい場合

puttyをダウンロードしてインストール
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

PuTTYgenを立ち上げ、「Load」ボタンで、秘密鍵(C:/Users/test/.ssh/id_ed25519_2)を指定する
「Save private key」ボタンで、C:/Users/test/.ssh/id_ed25519_2.ppkを指定する

teratermではこの変換したファイルを指定する

まとめ

  • lolipopではSSHを有効にしてから使用する必要がある
  • パスワード文字列よりは公開鍵方式のほうが安全(秘密鍵が流失しないように注意する)
  • カギにパスフレーズを登録しておいたほうがもっと安全
  • windows11標準のSSHだけで十分
  • 公開鍵は/home/users/2/pepper.jp-xxxxxx/.ssh/authorized_keysに追加しておく
  • sshで接続するときに使用するのは秘密鍵(OpenSSH形式の鍵)
  • PuTTY/Plink/TortoisePlink/Pageant/WinSCP(Windows) などで秘密鍵を指定する場合はPuTTY形式(ppk)にしたものを指定する
  • ppkに変換するためにはPuTTYのPuTTYgenで変換する