从OpenWrt免密登录到其他机器
简要版:
dropbearkey -t rsa -f .ssh/id_rsa > id_rsa.pub
scp id_rsa.pub > root@192.168.1.2:/root/.ssh/authorized_keys
ssh -i .ssh/id_rsa root@192.168.1.2
详细版:
首先登入到OpenWrt。但想从OpenWrt免密登录其他机器,也要先生成密钥对并将公钥上传。由于无法使用ssh-keygen,我们可以直接用dropbearkey生成:
dropbearkey -t rsa -f ~/.ssh/id_rsa
Generating key, this may take a while…
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCn02fMyD2T1ECmDZso8EG1m/4eo5LJtNlbqCMu0SkABsOUvmTHozrPzoJ10SlcAhjnc84S//VGEAbNJxUTaYn0M7f7M8Q4NBSyPF9DMcNAWKM01OSll8BWLQafZeZneW+UOwO6h1LOd6UEaLS8lhKQUD05+dSzKhPHimZudlhkV2bO7KOkiFh3P4K1GakHBuXitB1V9QH144BKKlSqNXy7TZcJf5/oRkB76ZmdSDDMQtvfCHF1BZwggStgBsu9K6nAl8lz9MOVHCYs9AkEIurldrHLUKvoGJ4QA5yc3bEMQaMH7vu3G5YMysIY4w5+aVuZh5Wg4THoh6yXPfGUc7Mh root@OpenWrt
Fingerprint: md5 2d:8f:e9:e7:31:75:f0:f4:ba:b8:54:4c:2f:43:9b:33
这样就将私钥生成到~/.ssh/id_rsa了,并将公钥打印到了屏幕上。建议将公钥也保存下来,以便以后使用:
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCn02fMyD2T1ECmDZso8EG1m/4eo5LJtNlbqCMu0SkABsOUvmTHozrPzoJ10SlcAhjnc84S//VGEAbNJxUTaYn0M7f7M8Q4NBSyPF9DMcNAWKM01OSll8BWLQafZeZneW+UOwO6h1LOd6UEaLS8lhKQUD05+dSzKhPHimZudlhkV2bO7KOkiFh3P4K1GakHBuXitB1V9QH144BKKlSqNXy7TZcJf5/oRkB76ZmdSDDMQtvfCHF1BZwggStgBsu9K6nAl8lz9MOVHCYs9AkEIurldrHLUKvoGJ4QA5yc3bEMQaMH7vu3G5YMysIY4w5+aVuZh5Wg4THoh6yXPfGUc7Mh root@OpenWrt" > ~/.ssh/id_rsa.pub
然后就和原来一样,将公钥上传到目标服务器就可以了:
cat ~/.ssh/id_rsa.pub | ssh remote_username@remote_host 'cat >> .ssh/authorized_keys'
但是在登录的时候要注意,使用ssh命令需要加-i参数指定所用的私钥:
ssh -i ~/.ssh/id_rsa remote_username@remote_host
记得使用scp等类似命令也要这样。