備忘録兼ねて
PowerShellでSSHアクセス
-
PowerShellの開始 (キー入力):
Win
+x
>a
>はい
※Windows7以降標準搭載
ssh root@192.168.1.1
ssh root@192.168.1.1のショートカット作成(デスクトップ)
powershell
$DESKTOP = ([Environment]::GetFolderPath("Desktop") + "\192.168.1.1.lnk")
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$DESKTOP")
$Shortcut.TargetPath = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
$Shortcut.Arguments = '-windowstyle hidden -ExecutionPolicy RemoteSigned "Start-Process ssh root@192.168.1.1"'
$Shortcut.IconLocation = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe,0"
$Shortcut.WorkingDirectory = "."
$Shortcut.Save()
強制的に貼り付け
yes
SSHログイン出来ない場合
known_hostsクリア
-
C:\Users\yourusername\.ssh\known_hosts
※Windows隠しファイル
powershell
Clear-Content .ssh\known_hosts -Force
OpenSSHのインストール
※Windows 10 Fall Creators Update(1709)以降標準搭載
- 機能の確認
powershell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
- 機能のインストール
powershell
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
TOOLS
ethtool
使い方
# opkg update
opkg install ethtool
SFP="eth1" # sfp2 など
ethtool -s ${SFP} speed 2500 duplex full autoneg on
ethtool -m ${SFP}
BusyBox
busybox <アプレット> [引数...] # または
<アプレット> [引数...] # シンボリックリンクされている場合
htpasswdを使えるようにする
対応:arch64_cortex-a53, arm_cortex-a7_neon-vfpv4, x86_64
htpasswd
libaprutil 75.04 KiB
libapr 92.12 KiB
libexpat 45.10 KiB
libuuid1 11.00 kiB
DISTRIB_ARCH=`cat /etc/openwrt_release | grep DISTRIB_ARCH | awk '{print substr($0,index($0,"=") )}'`
if [ "${DISTRIB_ARCH}" = "='aarch64_cortex-a53'" ]; then
wget --no-check-certificate -O /usr/bin/htpasswd https://github.com/site-u2023/config-software/raw/main/htpasswd
fi
if [ "${DISTRIB_ARCH}" = "='arm_cortex-a7_neon-vfpv4'" ]; then
wget --no-check-certificate -O /usr/bin/htpasswd https://github.com/site-u2023/config-software/raw/main/htpasswd-arm
fi
if [ "${DISTRIB_ARCH}" = "='x86_64'" ]; then
wget --no-check-certificate -O /usr/bin/htpasswd https://github.com/site-u2023/config-software/raw/main/htpasswd-x86
fi
chmod +x /usr/bin/htpasswd
opkg update
opkg install --nodeps libaprutil
opkg install --nodeps libapr
opkg install --nodeps libexpat
opkg install --nodeps libuuid1
USERNAME="ユーザー名"
PASSWORD="パスワード"
htpasswd -B -n -b ${USERNAME} ${PASSWORD}
インストール済みパッケージ確認
フラッシュ後のインストールパッケージ確認
mkdir /etc/config-software; wget --no-check-certificate -O /etc/config-software/list-installed/install-config.sh https://raw.githubusercontent.com/site-u2023/config-software/main/install-config.sh
sh /etc/config-software/list-installed/install-config.sh > /etc/config-software/list-installed/my-package
cat /etc/config-software/list-installed/my-package
入っているパッケージ全て確認
grep -H Installed-Size: /usr/lib/opkg/info/*.control | sed 's,^.*/\([^/]\+\)\.control:Installed-Size: *\(.*\),\2\t\1,' | sort -n
openwrt opkg 一覧表示 プリインのパッケージと、あとからインストールしたのを分類
#!/bin/sh
# Create temporary files to store package information with timestamps
temp_file_user=$(mktemp)
temp_file_ok=$(mktemp)
count_user=0
count_ok=0
# Get total number of packages
total_packages=$(opkg list-installed | wc -l)
echo "Total packages to process: $total_packages"
# Create files to store package names
user_packages=""
ok_packages=""
# Loop through installed packages and get their installation time and status
for pkg in $(opkg list-installed | awk '{print $1}'); do
status=$(opkg status $pkg | grep -E 'Status' | awk '{print $3}')
installed_time=$(opkg status $pkg | grep 'Installed-Time' | awk '{print $2}')
# Convert timestamp to YYYY-MM-DD HH:MM:SS format
installed_datetime=$(date -d @$installed_time +'%Y-%m-%d %H:%M:%S')
if [ "$status" = "user" ]; then
echo "$installed_datetime $pkg" >> $temp_file_user
count_user=$((count_user + 1))
user_packages="$user_packages $pkg"
else
echo "$installed_datetime $pkg" >> $temp_file_ok
count_ok=$((count_ok + 1))
ok_packages="$ok_packages $pkg"
fi
echo "($((count_user + count_ok))/$total_packages) U: $count_user, P: $count_ok package: $pkg"
done
# Sort the temporary files by date and write to the output file
{
echo "## User Installed Packages"
sort $temp_file_user
echo ""
echo "## PREINSTALL OK Installed Packages"
sort $temp_file_ok
echo ""
echo "Total user installed packages: $count_user"
echo "Total preinstall ok installed packages: $count_ok"
} > /tmp/installed_packages_with_time.txt
# Write the package names to separate files
echo $user_packages > /tmp/packagename-user.txt
echo $ok_packages > /tmp/packagename-ok.txt
# Clean up the temporary files
rm $temp_file_user $temp_file_ok
# Check if nano is installed, if not use cat and more
if command -v nano > /dev/null; then
nano /tmp/installed_packages_with_time.txt
else
cat /tmp/installed_packages_with_time.txt | more
fi
ストレージの拡張
cfdisksize2fs
※Google Wi-Fiの場合
opkg update && opkg install cfdisk resize2fs
cfdisk /dev/mmcblk0
- 空のスペース行の前の最後のパーティションに移動します
- サイズ変更を選択
- 残りの空きスペースを占めるのに十分なスペースが自動的に選択されます
- パーティションテーブルを書き込んで終了します
- リブート
- 以下を使用してファイルシステムを更新します
LOOP0="空き領域の手前の領域"
resize2fs /dev/${LOOP0}
Attended Sysupgrade
opkg update
luci-app-attendedsysupgrade
opkg install auc
LED
ネットフィルター
利用可能LED確認
ls /sys/class/leds/
設定
LED='green:router'
opkg update
opkg install kmod-ipt-led
# 受信SSHトラフィック
iptables -A INPUT -p tcp --dport 22 -j LED --led-trigger-id ssh --led-delay 1000
# トリガー
echo netfilter-ssh > /sys/class/leds/${LED}/trigger
あとがき
大抵の事はOpenWrtサイトにある
ただ、資料が膨大だから、探すのは至難
限りなく無知だったので、ひたすら読み漁った・・・