You can do it by connecting to the AP manually.
First, it is easiest to turn off network manager, if you are running
one:
sudo service network-manager stop
Then you need to identify the BSSID of the AP you wish to join: the
command
sudo iw dev wlan0 scan
(if you are using wlan0 as your wireless interface) will produce a
lot of output, among which you will find something like:
BSS f8:1a:67:aa:7f:b9 (on wlan0) -- associated
TSF: 629432841083 usec (7d, 06:50:32)
freq: 2417
beacon interval: 100
capability: ESS Privacy ShortPreamble SpectrumMgmt ShortSlotTime (0x0531)
signal: -70.00 dBm
last seen: 0 ms ago
Information elements from Probe Response frame:
SSID: MySSID_NAME
(the output is longer than this). The relevant part is of course BSS
f8:1a:67:aa:7f:b9.
Next, you will have to free your interface of any previous IP
addresses, just in case:
sudo ip link set wlan0 down
sudo ip addr flush dev wlan0
sudo ip link set wlan0 up
Now you specify you want to connect to the specific AP:
sudo iwconfig wlan0 essid MySSID_NAME ap f8:1a:67:aa:7f:b9
where of course ap precedes the BSSID you just identified.
Now you need to start wpa_supplicant,
sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets
(if you do not know how to set up the file with your WPA credentials,
you may look it up here for instance; just be careful, where it
says network= {, it should be network={ without a space). Lastly,
sudo dhclient -v wlan0
(the -v flag does not work on all Linux distros, I like it because I
can monitor what is happening).
EDIT
The instructions above work for a network with WPA security. Fore WEP
security, replace the wpa_supplicant command with:
sudo iwconfig wlan0 key s:Your_WEP_password
Remember that the two characters s: before your password are
necessary. After this, once again
sudo dhclient -v wlan0
Hope this helps.