EdgeRouter/vyOSの設定をSSHでログインをしないでやりたい

投稿者: | 2月 26, 2025

いきなり。

 

閑話休題

 

Edgerouterの設定ファイルがAWSやAzureのVPN接続で設定ファイルが手に入るが、SSHでログインをしてペーストする必要がある。どうにか自動化できないのか?とか、簡単に手持ちのIPv6アドレスを持っているサーバをインターネットに露出できないかというのが今回の趣旨

例えば、

ssh ubnt@192.168.1.1 show interfacesとしても、正しく実行されない。

調べてみるとラッパーを噛ませる必要がある様子。

通常のコマンドは

/opt/vyatta/bin/vyatta-op-cmd-wrapper

configureコマンドは

/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper

となる。

実際の使い方

通常のコマンドの場合のサンプル

grepなどと組み合わせも可能。

#!/bin/bash
clear
vop=/opt/vyatta/bin/vyatta-op-cmd-wrapper

set -x

$vop show interfaces | grep eth0

configureコマンドの場合のサンプル

configureではなく、beginで始めて、endで終わるのがミソ。

#!/bin/bash
clear
vcfg=/opt/vyatta/sbin/vyatta-cfg-cmd-wrapper

set -x

$vcfg begin
$vcfg set firewall ipv6-name WANv6_IN rule 11 action accept
$vcfg set firewall ipv6-name WANv6_IN rule 11 description IPv6_test
$vcfg set firewall ipv6-name WANv6_IN rule 11 destination address XXXXXXXXXXXXXXXXXXX/128
$vcfg set firewall ipv6-name WANv6_IN rule 11 destination port 80,443
$vcfg set firewall ipv6-name WANv6_IN rule 11 protocol tcp
$vcfg commit
$vcfg end

sshでの実行

これらのファイルをcommands.txtというファイルで保存をして、以下を実行。

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ubnt@192.168.1.1 'bash -s' < commands.txt

証明書認証であればパスワードレスで実行できる。

コメントを残す