1.0 - Wat Is OpenSSH en Waar Kan Ik Het Krijgen?
- 1.1 - Wat is OpenSSH en waar kan ik het downloaden?
- 1.2 - Waarom zou het gebruikt moeten worden?
- 1.3 - Welke besturingssystemen worden ondersteund?
- 1.4 - Hoe zit het met auteursrecht, gebruik en patenten?
- 1.5 - Waar kan ik hulp krijgen?
- 1.6 - Ik heb een probleem gevonden. Waar meld ik dit?
2.0 - Algemene Vragen
- 2.1 - Waarom maakt ssh/scp verbindingen vanaf lage poorten? Mijn firewall blokkeert deze.
- 2.2 - Waarom is de ssh client setuid root?
- 2.3 - Waarom heeft SSH 2.3 problemen met with OpenSSH 2.1.1?
- 2.4 - Waarom print OpenSSH: Dispatch protocol error: type 20
- 2.5 - Oude versies van de commerciële SSH versleutelen hostsleutels met IDEA.
- 2.6 - Wat zijn die waarschuwingen over sleutellengtes?
- 2.7 - X11 en/of agent forwarding werkt niet.
- 2.8 - Na de upgrade van OpenSSH is ondersteuning voor SSH2 weg.
- 2.9 - sftp/scp faalt bij de verbinding, maar ssh is OK.
- 2.10 - Kan [foo] worden toegevoegd aan scp?
- 2.11 - Hoe gebruik ik port forwarding?
- 2.12 - Mijn ssh-verbinding loopt vast of wordt afgesloten na N minuten inactiviteit.
- 2.13 - Hoe kan ik met scp een bestand met een dubbele punt kopiëren?
- 2.14 - Waarom meldt OpenSSH z'n versienummer aan clients?
3.0 - Portable OpenSSH Vragen
- 3.1 - Valse PAM-authenticatieberichten in logbestanden.
- 3.2 - Lege wachtwoorden niet toegestaan met PAM-authenticatie.
- 3.3 - ssh(1) doet lang over de totstandkoming van de verbinding of het inloggen
- 3.4 - "Can't locate module net-pf-10" berichten in de log onder Linux.
- 3.5 - Wachtwoordauthenticatie werkt niet (bv. onder Slackware 7.0 of Red Hat Linux 6.x)
- 3.6 - Configure of sshd(8) zeurt over een gebrek aan RSA-ondersteuning
- 3.7 - "scp: command not found" foutmeldingen
- 3.8 - Kan de passphrase niet lezen
- 3.9 - 'configure' ontbreekt of make faalt
- 3.10 - Hangt vast bij het afsluiten van ssh
- 3.11 - Waarom hangt ssh vast bij het afsluiten?
- 3.12 - Ik deed een upgrade naar OpenSSH 3.1 en X11-forwarding werkt niet meer.
- 3.13 - Ik deed een upgrade naar OpenSSH 3.8 en sommige X11-programma's werken niet meer.
- 3.14 - Ik kopieerde mijn publieke sleutel naar authorized_keys maar publieke-sleutelauthenticatie werkt nog steeds niet.
- 3.15 - OpenSSH versies en PAM gedrag.
- 3.16 - Waarom toont "w" of "who" op AIX 5.x geen gebruikers die via ssh zijn ingelogd?
Het OpenSSH pakket bevat het ssh(1) programma dat rlogin en telnet vervangt en scp(1) dat rcp(1) en ftp(1) vervangt. OpenSSH heeft ook sftp(1) en sftp-server(8) toegevoegd die een makkelijkere oplossing bieden voor bestandsoverdracht. Het is gebaseerd op de secsh-filexfer IETF draft.
OpenSSH bestaat uit verschillende programma's.
De meeste recente versie van OpenSSH is opgenomen in de laatste distributie van OpenBSD en wordt geïnstalleerd als onderdeel van een basis-installatie.
Vandaag de dag hebben de meeste andere besturingssystemen een versie van OpenSSH (vaak hernoemd of gelabeld als 'eigen'), waardoor de meeste gebruikers het direct kunnen gebruiken. Echter, soms is de bijgevoegde versie tamelijk oud en ontbreken er functies van de huidige versie van OpenSSH en wilt u de huidige versie installeren, of u wilt het installeren op één van de weinige besturingssystemen waar het ontbreekt en waar de OS-uitgever geen modere versie beschikbaar stelt. U wilt wellicht ook OpenSSH gebruiken in uw embedded applicatie.
Niet-OpenBSD gebruikers zullen de multi-platform Portable distributie wilen downloaden, compileren en installeren vanaf een mirror bij u in de buurt.
OpenSSH is een pakket van programma's om uw netwerkverbindingen te beveiligen. Hier is een lijst met functionaliteiten:
Op dit moment wordt bijna alle communicatie in computernetwerken zonder encryptie uitgevoerd. Het gevolg hiervan is dat iedereen die toegang heeft tot een machine op het netwerk alle communicatie kan afluisteren. Dit wordt gedaan door hackers, nieuwsgierige beheerders, werkgevers, criminelen, industriële spionnen en overheden. Sommige netwerken lekken genoeg elektromagnetische straling zodat de data zelfs vanop een afstand opgevangen kan worden.
Wanneer u inlogt, wordt uw wachtwoord als gewone tekst over het netwerk verzonden. Op die manier kan iedere luisteraar uw account gebruiken om te doen wat hij wil. Er zijn wereldwijd vele incidenten voorgekomen waar crackers programma's op werkstations hebben gestart zonder dat de eigenaars ervan wisten enkel om naar het netwerk te luisteren en wachtwoorden te verzamelen. Programma's om dit te doen zijn via Internet beschikbaar of kunnen door een kundige programmeur in een paar uur gebouwd worden.
Bedrijven hebben bedrijfsgeheimen, patentaanvragen in opmaak, prijsinformatie, informatie over toeleveranciers, klantgegevens, personeelsgegevens, financiële gegevens, enz. Op dit moment kan iedereen met toegang tot het netwerk (elke machine op het netwerk) luisteren naar alles wat zich op het netwerk afspeelt zonder gehinderd te worden door normale toegangsbeperkingen.
Veel bedrijven zijn zich niet bewust van het gemak waarmee informatie via het netwerk verkregen kan worden. Ze vertrouwen erop dat hun gegevens veilig zijn aangezien niemand kan weten dat er gevoelige informatie over het netwerk verzonden wordt of omdat er zoveel meer gegevens op het netwerk aanwezig zijn. Dit is geen veilig beleid.
Ook al wordt OpenSSH ontwikkeld op OpenBSD, er bestaan veel verschillende ports naar andere besturingssystemen. De portable versie van OpenSSH wordt geleid door Damien Miller. Zie voor een vluchtig overzicht van de portable versie van OpenSSH OpenSSH Portable Uitgave. Op dit ogenblik worden de volgende besturingssystemen ondersteund:
Een lijst met leveranciers die OpenSSH in hun distributie opnemen is te vinden op de OpenSSH Gebruikers pagina.
De ontwikkelaars van OpenSSH hebben erg hard geprobeerd om OpenSSH vrij van patenten of auteursrechtproblemen te houden. Hiervoor moesten sommige opties van OpenSSH verwijderd worden. Namelijk ondersteuning voor gepatenteerde algoritmen.
OpenSSH ondersteunt geen gepatenteerde transportalgoritmen. In SSH1-modus zijn alleen DES en Blowfish beschikbaar als opties. In SSH2-modus kan alleen gekozen worden uit 3DES, Blowfish, CAST128, Arcfour en AES. Het gepatenteerde IDEA-algoritme wordt niet ondersteund.
OpenSSH heeft ondersteuning voor de protocollen SSH1 en SSH2.
Sinds het patent op RSA verlopen is, zijn er geen beperkingen op het gebruik van software die RSA gebruikt, inclusief OpenBSD.
Er zijn veel plaatsen waar u hulp kunt krijgen. Naast de website van OpenSSH, zijn er veel mailinglijsten die het proberen waard zijn. Voordat u een mailinglijst probeert, zoek eerst alle archieven van de mailinglijsten door om te kijken of uw vraag al beantwoord is. De OpenSSH Mailinglijst is gearchiveerd en in zoekbare vorm gegoten en kan gevonden worden op marc.info.
Voor meer informatie over het aanmelden bij OpenSSH-gerelateerde mailinglijsten, zie OpenSSH Mailinglijsten.
Informatie over het inzenden van foutmeldingen kunnen op de OpenSSH Probleemmeldingen pagina gevonden worden.
Indien u een veiligheidsprobleem wilt melden, neem dan contact op met de besloten mailinglijst van de ontwikkelaars <openssh@openssh.com>.
De OpenSSH-client maakt gebruik van lage poorten voor de authenticate bij rhosts en rhosts-rsa omdat de server de gebruikersnaam die de client opgeeft moet vertrouwen. Om dit te voorkomen kunt u onderstaand voorbeeld in de bestanden ssh_config of ~/.ssh/config plaatsen.
UsePrivilegedPort no
Of u kunt deze optie vanaf de prompt instellen met het -o argument van het ssh(1) commando.
$ ssh -o "UsePrivilegedPort no" host.com
Net zoals bij de vorige vraag (2.1) heeft OpenSSH root-rechten nodig om lage poorten te gebruiken voor rhosts-authenticatie. Een bevoorrechte poort is ook nodig voor rhosts-rsa authenticatie bij oudere SSH-versies.
Daarnaast heeft de ssh-client voor zowel rhosts-rsa authenticatie
(in protocolversie 1) en hostgebaseerde authenticatie
(in protocolversie 2) toegang nodig tot de private hostsleutel om
de client te authentiseren bij de server.
Voor versies van OpenSSH ouder dan 3.3 moest de ssh binary
setuid root zijn en u kunt dit verwijderen als u deze authenticatiemethodes
niet wilt gebruiken.
Vanaf OpenSSH 3.3 is ssh niet standaard setuid. Voor de toegang
tot de private hostsleutel wordt ssh-keysign
gebruikt en ssh gebruikt standaard geen gepriviligeerde bronpoorten. Als u een
gepriviligeerde bronpoort wilt gebruiken moet u handmatig de setuid bit op
ssh aanzetten.
SSH 2.3 en eerdere versies hebben een fout in hun HMAC-implementatie. Hun code gaf niet de volledige datablokuitvoer van de digest en produceerde in plaats daarvan altijd 128 bits. Dit zorgde ervoor dat met langere digests SSH 2.3 niet werkte met OpenSSH.
OpenSSH 2.2.0 ontdekt dat SSH 2.3 deze fout bevat. Recente versies van SSH hebben deze fout opgelost. Of u kunt het volgende toevoegen aan de sshd2_config van SSH 2.3.
Mac hmac-md5
Problemen in de onderlinge werking zijn waargenomen omdat oudere versies van OpenSSH het verwisselen van session keys niet ondersteunde. Echter de commerciële SSH 2.3 probeert deze functionaliteit uit te voeren, uw verbinding kan bevriezen of u krijgt de foutmelding "Dispatch protocol error: type 20". Om dit probleem op te lossen kunt u upgraden naar een recente uitgave van OpenSSH of verwisseling van sleutels uitschakelen door het volgende in ssh2_config of sshd2_config van uw commerciële SSH 2.3 te zetten.
RekeyIntervalSeconds 0
De oude versies van SSH gebruikten een gepatenteerd algoritme om hun /etc/ssh/ssh_host_key te versleutelen. Hierdoor kan sshd(8) zijn hostsleutel niet lezen. Gebruik het onderstaand commando om uw ssh_host_key 3DES te laten gebruiken om dit op te lossen. N.B.: gebruik voor onderstaand voorbeeld het ssh-keygen(1) programma van het Commerciële SSH produkt, *NIET* OpenSSH.
# ssh-keygen -u -f /etc/ssh/ssh_host_key
Het ssh-keygen(1) programma van de commerciële SSH bevat een bug die soms zorgde voor Pubkey Authenticatiesleutels (RSA of DSA) waar de Meest Significante Bit (MSB) niet ingesteld was. Zulke sleutels leken de gehele lengte te hebben, maar zijn in werkelijkheid de helft van de tijd kleiner dan aangenomen wordt.
OpenSSH zal waarschuwingen geven wanneer het een dergelijke sleutel tegenkomt. Wijzig uw known_hosts bestanden en vervang de ongeldige sleutellengte (meestal "1024") door de juiste sleutellengte (gewoonlijk "1023") om van deze foutmelding af te komen.
Controleer uw ssh_config en sshd_config. De standaardconfiguratie schakelt forwarding van de authentication agent en X11 uit. Plaats de volgende regel in uw sshd_config om het aan te zetten:
X11Forwarding yes
en plaats de volgende regels in ssh_config:
ForwardAgent yes
ForwardX11 yes
X11 forwarding vereist een werkende xauth(1) binary. Op OpenBSD zit deze in de xbase bestandenset maar dit zal waarschijnlijk verschillend zijn op andere platformen. Voor OpenSSH Portable moet xauth ofwel gevonden worden tijdens configure ofwel gespecificeerd via XAuthLocation in sshd_config(5) en ssh_config(5).
Opmerking over agent interoperabiliteit: Er zijn twee verschillende en niet-compatibele agent forwarding mechanismes binnen het SSH2 protocol. OpenSSH heeft altijd een uitbreiding van de originele SSH1 agent aanvragen gebruikt, bepaalde commerciële producten gebruiken echter een verschillend, niet-vrij agent forwarding protocol. Dit betekent dat agent forwarding niet kan gebruikt worden tussen OpenSSH en die producten.
N.B.: Voor gebruikers van Linux Mandrake 7.2, Mandrake wijzigt de XAUTHORITY omgevingsvariabele in /etc/skel/.bashrc en hierdoor in de home directory van elke bash-gebruiker. Deze variabele wordt ingesteld door OpenSSH en om beide opties te laten werken moet u van de volgende lijn een commentaarregel maken:
# export XAUTHORITY=$HOME/.Xauthority
Tussen versies kunnen wijzigingen aangebracht zijn in sshd_config of ssh_config. U kunt het beste bij het upgraden van OpenSSH-versies altijd deze wijzigingen controleren. Na OpenSSH versie 2.3.0 moet u het volgende aan uw sshd_config toevoegen:
HostKey /etc/ssh_host_dsa_key
HostKey /etc/ssh_host_rsa_key
sftp en/of scp kunnen falen bij het maken van de verbinding als uw shellinitialisatie (.profile, .bashrc, .cshrc, etc) uitvoer produceert voor niet-interactieve sessies. Deze uitvoer is verwarrend voor de sftp/scp-client. U kunt controleren of uw shell dit doet door het volgende uit te voeren:
ssh yourhost /usr/bin/true
Als bovenstaand commando uitvoer produceert moet u uw shellinitialisatie aanpassen.
In het kort: nee.
Uitgebreid: scp is niet gestandardiseerd. De specificatie kan nog het best omschreven worden als "dat wat rcp doet". Aangezien het commando door beide kanten van de verbinding gebruikt wordt kunnen er bij het toevoegen van mogelijkheden of opties problemen ontstaan met de interoperabiliteit met andere implementaties.
Het is waarschijnlijker dat nieuwe mogelijkheden worden toegevoegd aan sftp, omdat het protocol gestandaardiseerd is (tenminste, een draft standaard), uitbreidbaar, en de client en server ontkoppeld zijn.
Als de remote server sshd(8) gebruikt is het mogelijk om bepaalde services te ``tunnelen'' via ssh. Dit kan bijvoorbeeld gebruikt worden om POP- of SMTP-verbindingen te versleutelen ook al heeft de software geen ondersteuning voor versleutelde verbindingen. Tunnelen gebruikt port forwarding om een verbinding te maken tussen de client en de server. Hiervoor moet de client software in staat zijn een niet-standaard poort op te geven om een verbinding naar te maken.
De idee is dat de gebruiker met ssh een verbinding maakt met de remote host en opgeeft welke poort op de machine van de client gebruikt moet worden om verbindingen naar de remote server door te sturen. Daarna is het mogelijk om op de machine van de client de service te starten die versleuteld moet worden (b.v. fetchmail, irc) en hier de poort op te geven die aan ssh is doorgegeven en de verbinding wordt door ssh getunneld. Standaard zal het systeem dat aan forwarding doet, alleen verbindingen vanwege zichzelf aanvaarden.
De meest relevante opties voor tunnelen zijn de -L en -R opties, waarmee de gebruiker verbindingen kan doorsturen, de -D optie, waarmee dynamische poort forwarding mogelijk is, de -g optie, die andere hosts toelaat om port forwarding te gebruiken, en de -f optie, die ssh zegt zichzelf naar de achtergrond te plaatsen na authenticatie. Zie de ssh(1) man pagina voor verdere details.
Dit is een voorbeeld van het tunnelen van een IRC-sessie van de client machine ``127.0.0.1'' (localhost) naar de remote server ``server.example.com'':
ssh -f -L 1234:server.example.com:6667 server.example.com sleep 10
irc -c '#users' -p 1234 pinky 127.0.0.1
Hier wordt een verbinding naar IRC-server server.example.com getunneld en kanaal ``#users'' gejoind met de gebruikersnaam ``pinky''. De lokale poort die in dit voorbeeld wordt gebruikt is 1234. Het maakt niet uit welke poort wordt gebruikt, zolang ze maar groter is dan 1023 (alleen root kan sockets openen op bevoorrechte poorten) en geen conflict veroorzaakt met de poorten die al in gebruik zijn. De verbinding wordt doorgestuurd naar poort 6667 van de remote server, angezien dat de standaard poort voor IRC-diensten is.
Het commando ``sleep 10'' wordt gebruikt om een bepaalde tijdsduur toe te laten (in het voorbeeld 10 seconden) om de dienst te starten die moet worden getunneld. Als er geen verbindingen gemaakt worden binnen de opgegeven tijd zal ssh afsluiten. Als meer tijd nodig is kan de waarde van sleep(1) daarvoor verhoogd worden of anders kan het voorbeeld hierboven toegevoegd worden als een functie van de shell van de gebruiker. Zie ksh(1) en csh(1) voor meer details over gebruikersgedefinieerde functies.
ssh heeft ook een -N optie, welke handig is m te gebruiken met port forwarding: als -N wordt opgegeven is het niet nodig om een remote commando op te geven (in het voorbeeld hierboven ``sleep 10''). Deze optie zorgt er echter voor dat ssh voor altijd blijft draaien (in plaats van af te sluiten na het remote commando voltooid is), en de gebruiker moet achteraf het proces handmatig afsluiten met kill(1).
Dit komt meestal doordat een packet filter of NAT-apparaat je TCP-verbinding laat verlopen vanwege inactiviteit. Je kan ClientAliveInterval in de sshd_config van de server aanzetten, of ServerAliveInterval in de ssh_config van de client (laatstgenoemde is in OpenSSH 3.8 en nieuwer beschikbaar).
Door één van de opties aan te zetten en het interval in te stellen op een periode korter dan de tijdsduur waarna de sessie wordt afgesloten zorg je ervoor dat de verbinding in de verbindingstabel van het apparaat "vers" blijft.
$ scp ./bron:bestand sshserver:
Zoals de meest SSH-implementaties meldt OpenSSH z'n naam en versie aan clients zodra deze verbinding maken, bv.
SSH-2.0-OpenSSH_3.9
Deze informatie wordt gebruikt door clients en servers om aanpassingen te doen voor protocolcompatibiliteit om langs gewijzigde, slecht werkende of niet aanwezige functionaliteiten in de implementatie heen te werken waartegen ze praten. Het is op dit ogenblik nog steeds nodig om het protocol te kunnen controleren omdat versies met incompatibiliteiten nog steeds veel in gebruik zijn.
De portable versie van OpenSSH genereert valse authenticatieberichten bij elke login, bijvoorbeeld:
"authentication failure; (uid=0) -> root for sshd service"
Deze worden gegenereerd omdat OpenSSH eerst kijkt of een gebruiker authenticatie nodig heeft bij het aanmelden (b.v. leeg wachtwoord). Helaas logt PAM alle authenticatiepogingen, inclusief deze.
Als u zich er aan ergert kunt u "PermitEmptyPasswords no" in sshd_config zetten. Dit verwijdert de foutmelding maar het is niet meer mogelijk in te loggen met accounts zonder wachtwoord. Dit is de standaardinstelling in het bijgeleverde sshd_config bestand.
Om lege wachtwoorden aan te zetten met een versie van OpenSSH met PAM moet u de optie nullok toevoegen aan het eind van de de wachtwoordcontrolemodule in het bestand /etc/pam.d/sshd. Bijvoorbeeld:
auth required/lib/security/pam_unix.so shadow nodelay nullok
Dit moet gedaan worden naast het instellen van "PermitEmptyPasswords yes" in het bestand sshd_config.
Er zit een addertje onder het gras bij het gebruik van lege wachtwoorden met PAM-authenticatie: PAM zal elk wachtwoord goedkeuren wanneer een account met een leeg wachtwoord authentiseert. Dit breekt de controle die sshd(8) gebruikt om vast te stellen of een account geen wachtwoord ingesteld heeft en geeft gebruikers toegang tot de account ongeacht de waarde van PermitEmptyPasswords. Hierom is het aan te raden dat u niet de nullok optie toevoegt aan uw PAM-configuratiebestand tenzij u specifiek lege wachtwoorden wilt toelaten.
Grote vertragingen (meer dan 10 seconden) worden gewoonlijk veroorzaakt door een probleem met de naamresolutie:
nslookup door zowel de client als de server elkaars naam en
IP-adres te laten opzoeken. Kijk daarnaast ook naar de naam die de server
ontvangt bij IP-naam opzoeking van de client. U kunt de meeste
opzoekingen die de server maakt uitzetten door UseDNS no in
sshd_config te zetten.Vertragingen kleiner dan 10 seconden kunnen andere oorzaken hebben.
ssh die
er voor zorgde dat een grotere moduli wordt aangevraagd dan de bedoeling
was (gecombineerd met bovenstaande zorgde dit voor grote vertragingen).
Dit probleem is op te lossen door te upgraden naar 3.8 of hoger.ssh-rand-helper wordt aangeroepen om
entropie te genereren hangt. Dit kan worden onderzocht door het in
debug-modus te draaien:
Alle significante vertragingen moeten worden onderzocht en opgelost of anders moeten de overeenkomende commando's verwijderd worden uit ssh_prng_cmds.
/usr/local/libexec/ssh-rand-helper -vvv
time ssh localhost true met een 1024-bit RSA sleutel op hosts die
verder geen andere load hebben. OpenSSH en OpenSSL werden gecompileerd met
gcc 3.3.x.
| CPU | Tijd (SSHv1)[1] | Tijd (SSHv2) |
|---|---|---|
| 170MHz SPARC/sun4m | 0.74 sec | 1.25 sec |
| 236MHz HPPA/8200[2] | 0.44 sec | 0.79 sec |
| 375MHz PowerPC/604e | 0.38 sec | 0.51 sec |
| 933MHz VIA Ezra | 0.34 sec | 0.44 sec |
| 2.1GHz Athlon XP 2600+ | 0.14 sec | 0.22 sec |
De Linux kernel zoekt (via modprobe) naar protocolfamilie 10 (IPv6). Laad de juiste kernelmodule, voeg de juiste alias in in /etc/modules.conf of schakel IPv6 uit in /etc/modules.conf.
Om een of andere maffe reden kan /etc/modules.conf ook /etc/conf.modules heten.
Indien het wachtwoord juist is en de login nog steeds verboden wordt, is de gewoonlijke oorzaak dat het systeem geconfigureerd is om MD5-type wachtwoorden te gebruiken maar de crypt(3) functie gebruikt door sshd begrijpt ze niet.
Getroffen accounts zullen wachtwoord-strings hebben in /etc/passwd of /etc/shadow die beginnen met $1$. Indien wachtwoordauthenticatie mislukt voor nieuwe accounts of accounts met recent veranderde wachtwoorden, maar wel werkt voor oude accounts, is dit de waarschijnlijke boosdoener.
De onderliggende oorzaak is dat bepaalde versies van OpenSSL een crypt(3) functie hebben die MD5 wachtwoorden niet begrijpt, en de linkvolgorde van sshd betekent dat OpenSSL's crypt(3) gebruikt wordt in plaats van die van het systeem. OpenSSH's configure poogt dit te corrigeren maar dit heeft niet altijd succes.
Er zijn verscheidene mogelijke oplossingen:
Schakel sshd's ingebouwde ondersteuning voor MD5 wachtwoorden in bij het bouwen.
Dit is veilig zelfs indien u beide types van encryptie hebt aangezien sshd automatisch het juiste algoritme zal selecteren voor elke account.
./configure --with-md5-passwords [opties]
Indien uw systeem een afzonderlijke libcrypt library heeft (bv. Slackware 7), dan kan u handmatig -lcrypt toevoegen aan de LIBS lijst zodat het gebruikt wordt in plaats van die van OpenSSL:
LIBS=-lcrypt ./configure [opties]
Indien uw platform PAM ondersteunt, kan u sshd configureren om het te gebruiken (zie sectie 3.15). Dit zal betekenen dat sshd zelf geen wachtwoorden zal verifiëren maar zal verschuiven naar de geconfigureerde PAM modules.
Controleer of uw OpenSSL-bibliotheken gecompileerd zijn om RSA of DSA te ondersteunen, intern of via RSAref.
scp(1) moet in het standaard PATH voorkomen op zowel de client als de server. U moet wellicht de optie --with-default-path gebruiken om een ander pad op te geven om op de server te doorzoeken. Deze optie vervangt het standaardpad, dus u moet alle huidige directories op uw pad aangeven naast de plek waar u scp heeft geinstalleerd. Bijvoorbeeld:
$ ./configure --with-default-path=/bin:/usr/bin:/usr/local/bin:/path/to/scp
Merk op dat de configuratie van de beheerder van de server de voorkeur krijgt over de instelling --with-default-path. Dit kan via een wijziging van PATH in /etc/profile, PATH in /etc/environment op AIX, of (voor 3.7p1 en nieuwer) PATH of SUPATH in /etc/default/login op Solaris of Reliant Unix.
Sommige besturingssystemen stellen /dev/tty in met verkeerde modes, waardoor wachtwoorden niet kunnen worden ingelezen door de volgende foutmelding:
You have no controlling tty. Cannot read passphrase.
De oplossing is om de permissies van /dev/tty op 0666 te zetten en deze fout te melden bij uw besturingssysteemleverancier.
Als er geen 'configure' bestand is in het tar.gz-bestand dat u gedownload heeft of make faalt met "missing separator" foutmeldingen, heeft u waarschijnlijk de OpenBSD-distributie van OpenSSH gedownload en probeert u deze te compileren op een ander platform. Zie de informatie over de portable versie.
OpenSSH kan hangen bij het afsluiten. Dit kan voorkomen wanneer een proces actief is in de achtergrond. Het kan voorkomen op Linux en HP-UX. Het probleem kan geverifieerd worden door het volgende uit te voeren:
Probeer in plaats daarvan dit te gebruiken:
$ sleep 20 & exit
$ sleep 20 < /dev/null > /dev/null 2>&1 &
Een alternatief voor gebruikers van bash is om "shopt -s huponexit" in /etc/bashrc of ~/.bashrc te zetten. Raadpleeg anders de man pagina van uw shell voor een optie om een HUP-signaal te sturen naar een actieve taak bij het afsluiten. Zie bug #52 voor andere tijdelijke oplossingen.
Wanneer
uitgevoerd wordt moet ssh hangen, want het moet wachten:
$ ssh host commando
commando niet meer invoer
nodig heeft.
commando niet meer uitvoer
produceert.
commando stopt omdat sshd de exitstatus van
commando aan ssh moet vertellen.
Over het algemeen zouden X11-clients die X11-R6 gebruiken moeten werken met de standaardinstelling. Sommige distributeurs, inclusief HP, leveren X11-clients met R6- en R5-libs, dus sommige clients zullen wel werken en anderen niet. Dit geldt voor HP-UX 11.X.
Zoals vermeld wordt in de 3.8 release notes,
gebruikt ssh nu standaard niet-vertrouwde X11-cookies. Het vorige
gedrag kan teruggehaald worden door ForwardX11Trusted yes in
ssh_config te zetten.
Mogelijke symptomen zijn onder andere:
BadWindow (invalid Window parameter)
BadAccess (attempt to access private resource denied)
X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 20 (X_GetProperty)
Dit komt meestal doordat de permissies van $HOME, $HOME/.ssh of $HOME/.ssh/authorized_keys toegankelijker zijn dan sshd ze standaard toelaat te zijn.
Dit kan opgelost worden door het volgende op de server uit te voeren.
$ chmod go-w $HOME $HOME/.ssh
$ chmod 600 $HOME/.ssh/authorized_keys
$ chown `whoami` $HOME/.ssh/authorized_keys
Als dit om een of andere reden niet mogelijk is kunt u als alternatief StrictModes no in sshd_config zetten, maar dit wordt niet aangeraden.
Om PAM überhaupt te gebruiken, moet deze optie meegegeven worden bij het bouwen. Het run-time gedrag wanneer PAM ingebouwd is, varieert met de versie van Portable OpenSSH, en bij latere versies moet het ook ingeschakeld worden door UsePAM op yes in te stellen in sshd_config.
./configure --with-pam [opties]
Het gedrag van de relevante authenticatie-opties wanneer PAM ondersteuning ingebouwd is, wordt samengevat in de volgende tabel.
| Versie | UsePAM | PasswordAuthentication | ChallengeResponseAuthentication |
|---|---|---|---|
| <=3.6.1p2 | Niet van toepassing | Gebruikt PAM | Gebruikt PAM als PAMAuthenticationViaKbdInt ingeschakeld is |
| 3.7p1 - 3.7.1p1 | Standaard yes | Gebruikt PAM niet | Gebruikt PAM als UsePAM ingeschakeld is |
| 3.7.1p2 - 3.8.1p1 | Standaard no | Gebruikt PAM niet [1] | Gebruikt PAM als UsePAM ingeschakeld is |
| 3.9p1 | Standaard no | Gebruikt PAM als UsePAM ingeschakeld is | Gebruikt PAM als UsePAM ingeschakeld is |
[1] Bepaalde verkopers, met name Redhat/Fedora, hebben de PasswordAuthentication van 3.9p1 naar hun 3.8x gebaseerde packages gebackported. Indien u een door de verkoper geleverde package gebruikt, raadpleeg dan hun documentatie.
OpenSSH Portable's PAM interface heeft nog steeds problemen met een aantal modules, we hopen echter dat dit aantal in de toekomst zal dalen. Bij de 3.9p1 release zijn de gekende problemen: