Linux
SSH

Linuxサーバに楽にログインしたい

More than 3 years have passed since last update.

概要

  • できること
    • ssh接続先の指定がIPアドレスではなく、自分で決めた名前で可能になる
    • sshでのログイン時に、ユーザ/パスの入力が不要になる
  • 想定する対象者
    • Linuxとかsshとかあんまり慣れてません的な方
    • とりあえず試してみたい方
  • 想定作業時間
    • 30分ぐらい?

想定する状況

ログイン先サーバ

IPアドレス user pass
192.168.0.1 foo 1234

接続元の想定

user
bar

sshの基本操作

ssh 192.168.0.1
ログインユーザは接続元の端末の現在のユーザ名が使用される(みたい)
その後、パスワードを聞かれるので、接続先ユーザのパスワードを入力
-> ログイン失敗
接続先に対してbarユーザでログインを試みたため

たまたまbarユーザがいればログインできるかもしれないけど

ssh foo@192.168.0.1
IPアドレスの前にログインユーザを指定する
その後、パスワードを聞かれるので、接続先ユーザのパスワードを入力
-> ログイン成功

公開鍵使ってログインを楽にする

接続元での作業

<< 注意 >>
すでに誰かに設定してもらっているとかの場合はやめておきましょう。
設定を上書きする可能性があります。

ssh-keygenの実行

  • ssh-keygenを実行。
    • いろいろ聞かれるけど、とりあえずすべて未入力でEnter
  • すると~/.ssh/に下記の2ファイルが作成される
    • id_rsa:秘密鍵
    • id_ras.pub:公開鍵

ssh-keygen補足
作成される鍵の名称は上記id_rsaがデフォルトとなるが
複数のサーバに接続することを考えるとよろしくない
(どれがどのサーバのものかわからなくなる)
接続先サーバのIPアドレスを指定するのが良いかも

~/.ssh/configの編集

  • ~/.ssh/configを下記の様に編集(なければ作成)
    • Host:sshコマンドで指定する名前。お好みで。
    • HostName:IPアドレスを指定
    • User:接続で使用するユーザを指定
    • Port:ポート番号の指定がある場合などに指定
~/.ssh/config
Host target_server
  HostName 192.168.0.1
  User foo
  Port 22
  IdentityFile ~/.ssh/id_rsa

意味としては

  • ssh target_serverと実行すると
  • 192.168.0.1のサーバの
  • ポート22番で
  • ユーザfooで接続する
  • その際に使用する秘密鍵のファイルは~/.ssh/id_rsa

接続先での作業

  1. ~/.ssh/authorized_keysの編集
    • ~/.ssh/authorized_keysに、上記接続元で作成したid_rsa.pubの内容を追記する

接続元から上記設定を使用してログインしてみる

ssh target_server
-> ログイン成功、するはず