GNU/Linux >> Linux Esercitazione >  >> Linux

"530 Le sessioni non anonime devono utilizzare la crittografia" - durante l'utilizzo di curl

Il problema

"Le sessioni non anonime devono utilizzare la crittografia" si verifica quando si esegue il comando curl come utente root:

# curl -v -k --ftp-ssl --ftp-pasv ftp://192.168.X.X:990/ --user hcpa:XXX
* About to connect() to 192.168.X.X port 990 (#0)
* Trying 192.168.X.X... connected
* Connected to 192.168.X.X (192.168.X.X) port 990 (#0)
< 220 FTP SERVER INFOVALMER.
> USER hcpa
< 530 Non-anonymous sessions must use encryption.
* Access denied: 530
* Closing connection #0
curl: (67) Access denied: 530

Tuttavia funziona quando si esegue lo stesso comando curl dell'utente non root:

# exit
logout
# su - testuser
$ curl -v -k --ftp-ssl --ftp-pasv ftp://192.168.X.X:990/ --user hcpa:XXX
* About to connect() to 192.168.10.1 port 990 (#0)
* Trying 192.168.X.X... connected
* Connected to 192.168.X.X (192.168.X.X) port 990 (#0)
< 220 FTP SERVER INFOVALMER.
> AUTH SSL
< 234 Proceed with negotiation.
* Initializing NSS with certpath: /etc/pki/nssdb
* warning: ignoring value of ssl.verifyhost
* skipping SSL peer certificate verification
* NSS: client certificate not found (nickname not specified)
* SSL connection using SSL_RSA_WITH_3DES_EDE_CBC_SHA
* Server certificate:
* subject: ,CN=ftp-infovalmer,OU=VALORADOR,O=INFOVALMER,L=BOGOTA,ST=CUNDINAMARCA,C=CO
* start date: sep 10 22:11:55 2015 GMT
* expire date: sep 09 22:11:55 2018 GMT
* common name: ftp-infovalmer
* issuer: @ ,CN=ftp-infovalmer,OU=VALORADOR,O=INFOVALMER,L=BOGOTA,ST=CUNDINAMARCA,C=CO
> USER hcpa
< 331 Please specify the password.
> PASS XXX
< 230 Login successful.

La soluzione

Aggiungi $LD_LIBRARY_PATH variabile di ambiente in /root/.bash_profile .

/usr/bin/curl cerca la directory /apps/MATLAB/v81/bin/glnxa64/ durante la ricerca della libreria libcurl.so.4:

# ldd /usr/bin/curl
linux-vdso.so.1 => (0x00007fffc9f7d000)
libcurl.so.4 => /apps/MATLAB/v81/bin/glnxa64/libcurl.so.4 (0x00007f291de7b000) <-----
libidn.so.11 => /lib64/libidn.so.11 (0x0000003201600000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00000033afc00000)
librt.so.1 => /lib64/librt.so.1 (0x00000033ab400000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000032bba00000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000032bc200000)

In circostanze normali, /usr/bin/curl dovrebbe cercare la directory /usr/lib64/ durante la ricerca della libreria libcurl.so.4:

# ldd /usr/bin/curl
linux-vdso.so.1 => (0x00007fff8dbe1000)
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00000033ac400000) <-----
libidn.so.11 => /lib64/libidn.so.11 (0x0000003201600000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00000033afc00000)
librt.so.1 => /lib64/librt.so.1 (0x00000033ab400000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00000032bba00000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00000032bc200000)

1. L'aggiunta della variabile di ambiente $LD_LIBRARY_PATH in /root/.bash_profile avrà un impatto su tutte le applicazioni in esecuzione come utente root, quindi rimuovere prima LD_LIBRARY_PATH in /root/.bash_profile;

2. Quindi specificare il percorso di ricerca in fase di esecuzione durante la compilazione dell'applicazione matlab, consultare il fornitore dell'applicazione matlab e verificare se esiste un modo per ottenere ciò.

Oppure
Imposta LD_LIBRARY_PATH durante l'esecuzione del programma, ad esempio:

# LD_LIBRARY_PATH= ./app_test

"LD_LIBRARY_PATH=[PATH]b" ha effetto solo quando si esegue il comando precedente, non avrà alcun impatto su altre applicazioni.


Linux
  1. Automatizzare le richieste Web utilizzando Curl?

  2. Controllo dello stato di salute della pagina Web utilizzando Curl?

  3. Usa PowerShell per disabilitare la crittografia debole

  4. Come posso configurare curl per utilizzare in modo permanente un proxy?

  5. Usando e in Bash mentre il ciclo

Utilizzo di Curl per effettuare richieste API REST

Registra le sessioni del terminale usando Asciinema in Linux

Come utilizzare Ansible per inviare un'e-mail utilizzando Gmail

Come registrare sessioni del terminale Linux utilizzando Asciinema

Come usare il comando DD e come masterizzare ISO usandolo

Come usare CURL come un professionista in Linux