sorta kinda...

主にAWS関連ですが、これに限らずいろいろ勉強したことや思ったことを書いていきます。

ssh-copy-id という便利?なスクリプト [cloudpack OSAKA blog]

ナスです。

Linux のユーザ作ってssh でアクセスさせるまでの設定って、しょっちゅうしないのですぐ忘れます。いちいち調べるの面倒ですよね。(私が Linux に慣れてないだけかも

ssh のことを調べていると、ふと ssh-copy-id というスクリプトの存在に気付きました。公開鍵をリモートサーバに送り込んでくれるものです。Linux サーバでは標準?で使えます。mac には標準で入ってませんが、homebrew からインストールできます。

brew install ssh-copy-id

どうやって使うのかというと、対象のユーザとサーバ、公開鍵のファイル名を指定するだけです。

ssh-copy-id -i <ssh_pubkey> <username>@<remote-host>

これだけで、公開鍵をサーバに配置して、.ssh の中のパーミッションも自動で調整してくれるんです!めっちゃ便利!

 

…と思うでしょ?
実際にやってみたら色々エラーが出たので調べてみたら、そもそもそのユーザで ssh ログインできることが前提で ssh-copy-id が作られてました。

他の環境は知らないのですが、AmazonLinux だと最初はパスワード認証が無効なので、

  1. ec2-user で ssh アクセスしてパスワード認証を有効化
  2. ユーザ作成&パスワード設定
  3. 手元の mac で公開鍵作成
  4. ssh-copy-id 実行
  5. パスワード認証無効化

という感じで設定しますが、これなら最初から ec2-user で今までやってた手順で設定したほうが手間が少ないように思えます。昔の環境だとこれが役に立ってたんでしょうか? 昔を知らないのでよくわかりません…

そもそも使い方間違ってる!とか、こうすれば手間少なくてできるよ!とかのツッコミがあればお願いします。