SSH
セキュアシェル、リモートで別のパソコンのシェルを叩ける
最近はそうでもなくなってきた(OpenSSHが標準搭載された?)
~/.ssh フォルダの作成
~/.ssh/config ファイルを作成して、サーバの省略系を書き込み
rsaファイルの作成 $ ssh-keygen -t rsa
rsaファイル(鍵とよく呼ぶ)を作ると、秘密鍵と公開鍵(_pubになってる方)が作られる SSHの接続先や、GithubにSSHでログインする時なんかは、この公開鍵を相手先に登録する 画面右上にあるGitHubメニューの「Settings」アイコンをクリックして設定画面を開く
「SSH Keys」の設定画面より「Add SSH Keys」ボタンを押し、SSH Keysの登録画面に進む
ざっくりした仕組み
あらかじめ、秘密鍵をクライアントに、公開鍵をサーバに配置する(この時、公開鍵とユーザを紐づける) クライアントは、受信した暗号を復号化して乱数を取得する。 この乱数をハッシュ化したものを、秘密鍵で暗号化して送信。
サーバは受信した暗号を公開鍵で復号化して、ハッシュを取得する。
このハッシュと、①をハッシュ化したものとを照合して、一致していたら認証する。 ssh鍵のid_rsaって名前は、何か特別みたいで、他所から受領した鍵の名前をコレにすると色々動かなくなる(具体的にはgit) ssh鍵の権限
/home/user/.ssh は 0700
/home/user/.ssh/authorized_keys は 0600
configファイルの書き方
code:config
Host 識別名
HostName 接続先
Port ポート番号
User ユーザー名
IdentityFile 秘密鍵
秘密鍵パスは、Windowsの場合、頭に ~/.ssh/ を付けないと.sshフォルダ以外でうまく動かない
client_loop: send disconnect: Broken pipe
なんかSSHしてほったらかしてると接続が切れる
.ssh/configに以下を書くと治る
code:cofnig
Host *
ServerAliveInterval 60
TCPKeepAlive yes
---
SSHを受け付ける側の作り方
code:sh
$ sudo adduser <user_name>
$ sudo su - <user_name>
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
<authorized_keys>に公開鍵を貼り付け