如何将 wifi 密码转移到新安装

如何将 wifi 密码转移到新安装

我有一台 Acer Aspire ZG5 上网本,目前运行的是 Jolicloud,但我认为它不适合我,并计划切换到 Lubuntu 或 Xubuntu。

但是,我经常旅行,保存了不同办公室、酒店、咖啡馆、餐馆、朋友和亲戚家等的 wifi 密码。每次都要询问并重新输入这些密码,真是太烦人了。

有没有办法将我保存的 wifi 密码从旧安装转移到新安装?

答案1

在我的 12.04 系统上,WiFi 连接和密码(明文)存储在 /etc/NetworkManager/system-connections/ 中的文本文件中

停止网络管理器,将这些文件复制到新机器,恢复权限并重新启动网络管理器对我来说有效。

sudo stop network-manager
sudo cp /backup/path/etc/NetworkManager/system-connections/* /etc/NetworkManager/system-connections/
sudo chown root.root /etc/NetworkManager/system-connections/*
sudo start network-manager

答案2

Ubuntu 16.04,复制文件/etc/NetworkManager/system-connections/是不够的。文件包含 wlan 接口MAC地址,而且我还必须纠正它才能使其正常工作。

以下步骤可以帮助我将无线配置从旧的 12.04 系统导入到新的 16.04 安装中。

# Stop Network Manager
sudo /etc/init.d/network-manager stop

# copy the files from your old system (adapt as needed)
sudo rsync -va -c "/media/$YOUR_OLD_SYSTEM/etc/NetworkManager/system-connections/" /etc/NetworkManager/system-connections/

# Get your new MAC address, and verify it is right.
# For example, this should work if you have only one wireless interface
export MAC=$(iw dev | grep addr | awk '{print $2}')
echo "$MAC"

# Replace the MAC address in all the system-connections files
sudo perl -i.bak -pe 's/^(mac-address=)(.*)/$1$ENV{MAC}/' /etc/NetworkManager/system-connections/*

# Restart NetworkManager, and wait for nm-applet to also start and connect    
sudo /etc/init.d/network-manager start

# Delete the backup files with the old MAC addresses
sudo rm /etc/NetworkManager/system-connections/*.bak

如果由于某种原因您想要保留系统连接文件的原始时间戳而不是更改 MAC 地址时的时间戳,那么这里有一个替代方法,假设您有 2 个包含旧连接文件和当前连接文件的单独文件夹:

old=/etc/NetworkManager/system-connections.old
new=/etc/NetworkManager/system-connections
for f in $old/*; do b="$(basename "$f")"; perl -pe 's/^(mac-address=)(.*)/$1$ENV{MAC}/' "$f" > "$new/$b"; touch -r "$f" "$new/$b"; done

答案3

您的密码存储在 中~/.gnome2/keyrings。默认情况下,它们受您的登录密码保护。如果您将该文件夹复制到新系统并使用相同的登录密码,那么您应该拥有所有密码,包括您的 wifi 连接。

您的密码

您可以在密码和加密密钥应用程序中查看您的密码。它们应该位于名为的密钥环下login。您可以搜索“网络密钥”以仅显示 wifi 密码。

mv ~/.gnome2/keyrings ~/old_keyrings
cp ~/backup/keyrings ~/.gnome2/keyrings

然而,对于网络管理员来说,使用您的密码,它需要一个具有匹配 ID 号的 gconf 设置。您可以通过两种方式执行此操作:复制旧的 gconf 设置或创建新连接并更改其 ID 号。

复制旧的 gconf 设置

这真的很简单:

# network-manager will overwrite your changes if you don't terminate it
sudo stop network-manager
# back up old settings
mv ~/.gconf/system/networking/connections ~/old_connections
cp /media/old_install/.gconf/system/networking/connections  ~/.gconf/system/networking/connections
sudo start network-manager

不幸的是,这个方法对我不起作用。我的测试用例不正常,所以希望它对你有用。

创建新连接

如果上述方法不适合您,那么请在您的旧机器上:

  1. 打开密码和加密密钥
  2. 右键单击您的默认钥匙串
  3. 选择更改密码
  4. 将密码设置为空白
  5. 将 ~/.gnome2/keyrings/default.keyring 复制到 ~/old_passwords.keyring
  6. 现在您可以连接到网络并在 ~/old_passwords.keyring 中查找密码(由于您删除了密码,它将是一个纯文本文件)。

(您还可以创建连接并修改其 uuid 以匹配现有密码,但除非您可以编写脚本,否则这项工作太繁重了。)

答案4

JoliCloud 是基于 10.04,所以我假设它使用网络管理器来组织无线密码。大部分配置都存储在.gconf/system/networking/-- 不确定密码是存储在那里还是其他地方。

相关内容