ssh-copy-idを使ってssh公開鍵を対象サーバーに配置する

Bash, Linux, SSH

背景

ssh-copy-id という、操作中のユーザーのSSH公開鍵を対象サーバーに簡単に配置するためのコマンドを知ったので使ってみた。

環境

$ uname -a
Darwin genzouw-MacBook-Pro.local 15.0.0 Darwin Kernel Version 15.0.0: Sat Sep 19 15:53:46 PDT 2015; root:xnu-3247.10.11~1/RELEASE_X86_64 x86_64 i386 MacBookPro10,1 Darwin
$ bash -version
GNU bash, バージョン 4.3.42(1)-release (x86_64-apple-darwin14.5.0)
$ zsh --version
zsh 5.1.1 (x86_64-apple-darwin15.0.0)

検証

Vagrantで新しいLinuxサーバーを立てる

$ vagrant init
# ここではすでにBoxを追加していたため、Vagrantfileを編集して利用するBoxを設定した
$ vi Vagrantfile
$ vagrant up
# ログイン
$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ sudo useradd genzouw
[vagrant@vagrant-centos65 ~]$ sudo su - genzouw
# sshの鍵の設定はない状態
[genzouw@vagrant-centos65 ~]$ mkdir .ssh
[genzouw@vagrant-centos65 ~]$ chmod 700 .ssh/
[genzouw@vagrant-centos65 ~]$ exit
logout
# 初期パスワードを設定
[vagrant@vagrant-centos65 ~]$ sudo passwd genzouw
[vagrant@vagrant-centos65 ~]$ exit
logout
Connection to 127.0.0.1 closed.

Mac上に ssh-copy-id がインストールされていなかったのでインストール

$ brew install ssh-copy-id
==> Downloading https://homebrew.bintray.com/bottles/ssh-copy-id-6.8p1.el_capitan.bottle.tar.gz
####################################################################### 100.0%
==> Pouring ssh-copy-id-6.8p1.el_capitan.bottle.tar.gz
🍺  /usr/local/Cellar/ssh-copy-id/6.8p1: 7 files, 344K
# 試しに実行
$ ssh-copy-id
Usage: /usr/local/bin/ssh-copy-id [-h|-?|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname

早速鍵の設定

$ ssh-copy-id genzouw@127.0.0.1 -p2222

結果

おもむろにVagrant環境に接続してみる

$ ssh genzouw@127.0.0.1 -p2222

予め作成しておいたsshの鍵がパスワード無しのものだったので、パスワード無しでログインができる。

Bash, Linux, SSH

Posted by genzouw