25

I see that I can delete networks that my machine "remembers" from nm-applet by clicking on the wireless icon in the panel and selecting "edit connections" -> "wireless". However, sometimes I click on the wrong wireless connection by accident in the dropdown list. If the connection is secure, the machine of course never successfully connects, but somehow it still seems to memorize the ESSID. Whenever I'm in range of that wireless, it now tries to connect.

Worse, if not connected to any other network, it repeatedly prompts me to connect to this network. If left unattended, I may find dozens of copies of the window prompting me to log in to this mistaken network. There must be a file somewhere that records this connection ID, but I cannot find it. The only connections appearing in the "edit connections" I mention above are those to which I've actually connected. How do I find the file and delete the line corresponding to the offending "memorized" network?

EDIT I seek a solution to remove those networks from whatever list they get added to when I first select them. It appears this behavior is a bug in the network manager(?)

Anwar
  • 77,855
cboettig
  • 989

5 Answers5

34

have you tried to delete the files in the directory /etc/NetworkManager/system-connections/ ?

You should have 1 file for every net you have tried to connect, open a terminal and use the commands:

sudo ls -l /etc/NetworkManager/system-connections/

To list all the files, after you have found the network that you want to delete, remove them with the command:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
ricciocri
  • 1,321
16

You can delete connections using nmcli con delete (CONNECTION_NAME)

To delete all connection never used ( no root needed )

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done
Postadelmaga
  • 5,759
1

If your major problem are those annoying prompts asking you to log in to a network, then whenever you are not using Wireless, you can just Disable Wireless by clicking the Enable Wireless entry in your Network Indicator Menu.

Hashken
  • 6,340
0

Delete all connections:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
Eliah Kagan
  • 119,640
0

Adding more flexibility to the previous answer by @Postadelmaga, I've spent some more effort printing the name of the SSID being removed. This added a difficulty: we now have to avoid the possibility of a SSID name containing the word "never" accidentally matches the timestamp containing "never".

I've also created another function which removes a connection by name.

Sources at: https://github.com/frgomes/debian-bin/blob/master/bash_20nm.sh

#!/bin/bash

function nmcli_list {
  nmcli --pretty --fields NAME,UUID,TIMESTAMP-REAL con show
}

function nmcli_remove {
  if [ ! -z "$1" ] ;then
    nmcli --fields NAME con show | \
      grep "$@" | \
        while read name ;do 
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
  fi
}

##################################################################################
# The intent here is avoid that a connection named "never drive after you drink" #
# matches a timestamp "never". So, we have to make sure that we match colon      #
# followed by "never" followed by spaces and/or tabs and finally an end of line. #
#                                                                                #
# WARNING: However, I didn't get a chance to test this scenario.                 #
#          So, I provide this code the way it is, in the hope that I've covered  #
#          well the behavior from some other simulations I did.                  #
##################################################################################

function nmcli_remove_never_used {
  nmcli --terse --fields NAME,TIMESTAMP-REAL con show | \
    egrep -e ':never[ \t]*$' | \
      sed -r 's/:never[ \t]*$//' | \
        while read name ;do
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
}

Then you can delete a specific connection as shown below:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"