#前書き
大学の課題で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に試してできたので問題はないと思いますが