挨拶とか前書き
皆さんこんにちはFascodeNetworkのブログスケジュール管理を行っているなおこです。
前回のamazonで買ってよかったものブログが今年最後のブログかと思いましたが、少し予定が変わり私が入ることにしました!
今回はsshというサーバーをいじる際にほとんどの方が使うコマンドの基本的な使い方を紹介したいと思います。
今回使うPCスペックや実行環境
- OS : Alter Linux(実質Arch Linux)
- MB : B450M Steel Legend
- CPU : AMD Ryzen 5 5600x
- GPU : NVIDIA GTX 960
- RAM : 32GB
- HDD : 4TB
今回のブログの内容を実際に行うサーバーはこのブログを運用しているレンタルサーバーCoreServer V2のCORE-Xプランを使用します。
そこそこコスパが良いしコアサーバー自体のわからないことがあればサポートで質問できるのでおすすめ。
sshとは
sshはSecure SHellの略で離れたサーバーなどへの操作をネットワーク経由で暗号化された状態でs操作できます。
ちなみにパスワード認証による接続もできますがブルートフォースアタック(機械的な総当たり攻撃)のリスクがあるため危険です。
公開鍵や秘密鍵を使って接続することによりにパスワード認証よりも安全な接続を行うことができます。
2021/12/19 内容を修正、削除しました不備がありましたことお詫び申し上げます。
sshコマンドの使い方
ssh接続を行うためにsshコマンドを使用しますが、sshコマンドにはたくさんのオプションが存在しておりその中のいくつかを使用することで接続することができます。(ほとんどあまり使わない)
manコマンドなどでもsshの詳細を表示することができますが、詳しくまとめられているサイト見つけたのでURLを貼っておきます。問題があればご連絡ください。
適切に設定されているサーバーには下記のようにコマンドを入力するだけで接続することができます。
ssh ユーザー名@ホスト名
鍵ファイルを指定して接続する場合は -i オプションを使用します。
ssh -i 鍵ファイル ユーザー名@ホスト名
セキュリティー向上のためポート番号を変えている場合がありますその場合は-pオプションを使用します。
ssh ユーザー名@ホスト名 -p ポート番号
一般的な使い方であれば上記の内容で事足りると思います。
ポートフォワーディングやX11転送などの方法はそのうちブログにすると思います。
公開鍵、秘密鍵の生成や設定方法
レンタルサーバーなどではパスワード認証が無効化されており鍵認証のみしかサポートされいない場合があります。
その時は秘密鍵や公開鍵を生成し設定する必要があります。
今回はCoreServerV2を例に紹介しようと思いましたが、公式サイトの方に詳しくまとめられていたので解説はしません。
なのでパスワードと鍵認証が使えるサーバーをローカル内に構築したのでそれに鍵認証の設定を行う様子を、紹介します。
鍵を生成するのに使うコマンドは、ssh-keygenです。
暗号方式はrsaが主流ですが最近は ed25519 という暗号方式が話題に上がったりします。どちらか、好きな方を使うようにしてください。
下記のコマンドを実行すると色々聞かれます。パスフレーズあたりを設定しておけばあとはエンターで進めば問題ないと思われます。
ssh-keygen -t rsa
or
ssh-keygen -t ed25519
無事鍵ファイルが生成できたら公開鍵をサーバーに持っていきます。
scpコマンドやftpコマンドで ~/.ssh/ 中の.pub拡張子の公開鍵ファイルをサーバーに登録します。~/.ssh/authorized_keys
scp 鍵ファイル ユーザー名@ホスト名:
ssh ユーザー名@ホスト名
cat 鍵ファイル >> .ssh/authorized_keys
下記のようなワンラインコマンドでも追加することができます。
cat 公開鍵 | ssh ユーザー名@ホスト名 'cat >> .ssh/authorized_keys'
適切に設定が行えていれば、最初に紹介したsshの接続コマンドで接続することができます。
パスワード認証を無効にする
鍵認証で設定ができても、パスワード認証を無効しておかないと意味がありません。なので/etc/ssh/sshd_configファイルを編集します。
下記の2つをyesからno変更します。
- PasswordAuthentication yes → PasswordAuthentication no
- ChallengeResponseAuthentication yes → ChallengeResponseAuthentication no
sudo vi /etc/ssh/sshd_config
sshdサービスを再起動するとconfigファイルの設定を反映させることができます。
sudo systemctl restart sshd
or
service sshd restart
再起動後接続を切断せずに別のターミナルから接続できるかを試してから切断するようにしましょう。(そうしないとミスなどがあった際に積みます)
最後に
無事鍵認証のsshを行えているでしょうか?
パスフレーズ+鍵認証でパスワード認証よりも安全なssh接続を行えているのであれば幸いです。
それではそれでは次のブログでお会いしましょう。ほな〜
マイナンバーカードでsshする方法を以前ブログにしたと思うのでもしよければぜひぜひ見ていただけると幸いです。
The post sshとは?サーバーを扱うなら覚えるべき内容 first appeared on FascodeNetwork Blog.