LoginSignup
26
31

More than 5 years have passed since last update.

SSHについて〜ssh-keygenからssh-agentまで〜

Posted at

前書き

大学の課題でsshについて調べろと言われたので,sshを楽するための方法の一連を載せようかなと思います。
例えば


$ ssh user@hostname
Password:


$ hostname

だけでsshするようにするまでの設定です.

ssh-keygen

ユーザー側

$ ssh-keygen -b 2048 -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/user/.ssh/id_rsa.
Your public key has been saved in /Users/user/.ssh/id_rsa.pub.
The key fingerprint is:                                         
The key's randomart image is:

$ scp ~/.ssh/id_rsa.pub [username]@[remotehost]:~/.ssh/

このような感じでssh-keygenによって鍵ペアを作成し公開鍵をリモートホストへ送ります.

リモート側

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

対してリモート側では認証時の公開鍵は~/.ssh/authorized_keysというファイルを参照するのでcatコマンドで公開鍵をそのファイルに追加する.

ここまででssh-keygenで鍵ペアを作った時にきめたパスフレーズでリモートホストにログインできる

ssh-agent

ただパスワードをうつのがパスフレーズに変わっただけで手間は変わらないのでssh-agentの出番である.ssh-agentは公開鍵で使われる認証鍵を管理,認証を代行するエージェントプログラムなのでこれを利用すればパスフレーズの入力もいらなくなる.
ユーザー側

$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /Users/users/.ssh/id_rsa: 
Identity added: /Users/users/.ssh/id_rsa

まずはssh-agentをbashで起動する.
そのあとに先ほどssh-keygenで作った鍵ペアの秘密鍵の方をssh-addで追加する.
これだけであとは


$ ssh username@hostname

でログインできるようになる.

.ssh/config

今まででもパスワードもしくはパスフレーズの入力がなくなったので楽にはなったのだが
ログインするユーザ名などが固定であれば.ssh/configに書き込むことでさらに名称を略することができる

$ vim ~/.ssh/config/
Host name
    Hostname hostname
    User username

という感じでHostのあとに好きな名前(計算機の名前にしとくとわかりやすいかも)
Hostnameに今までログインする時に使ってたhostnameを
Userにログインするユーザ名を書く
すると次からは

$ ssh [Hostのところに書いた名称]

でログインすることができる.

alias設定

最後にsshを除いて計算機の名前だけでログインできるように.bashrcにaliasの設定をする.

vim .bashrc
alias test="ssh [Hostのところに書いた名称]"

source .bashrc

こうすれば

$ test

とするとリモート側にsshできます

最後に

なにかミスとかあったら教えてください.一応自分はcentOS7からGentooに試してできたので問題はないと思いますが

26
31
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
31