(linux was 卸载)
python 0x80070643安裝發生嚴重錯誤,如何卸載?
有時候同一臺電腦上可能會需要裝不同版本的python軟件。比如python 3.6.5版本和python3.5.3版本,而現在要使用python.3.6.1版本,就必須要卸載python3.6.5版本,否則同是python3.6版本的軟件就無法重裝。很多人習慣使用第三方軟件對不需要的軟件進行卸載,結果就會無法卸載python3.6版本。同時報錯 python 0x80070643 安裝時發生嚴重錯誤 ,經過多次努力和嘗試終于找到了這個問題的解決方法。
1、先點擊左下角的windouws徽標鍵,點擊 設置 按鈕,并且在windows設置里面找到 應用。
2、直接輸入 python 這個名稱進行應用搜索。在搜索結果中點擊python3.6.5版本這個軟件,點擊修改按鈕。
3、進入 Modify Setup 界面后點擊 Repair 選項,然后耐心等待。
4、當出現 Repair was succcesful點擊右下角的 close按鈕。
5、然后再次進入應用界面,點擊兩次 卸載
6、出現Uninstall Progress 耐心等待卸載。
7、卸載完后會提示Uninstall was successful,再次回到應用頁面,發現python3.6.5版本已經卸載成功了,只剩下python 3.5.3版本了.
注意事項
這個軟件的卸載為自卸載
不能卸載出現問題后,先修復再卸載
linux服務之OpenSSH服務?
OpenSSH這一術語指系統中使用的Secure Shell軟件的軟件實施。用于在遠程系統上安全運行shell。如果您在可提供ssh服務的遠程Linux系統中擁有用戶帳戶,則ssh是通常用來遠程登錄到該系統的命令。ssh命令也可用于在遠程系統中運行命令。
常見的遠程登錄工具有:
telnet
ssh
dropbear
telnet //遠程登錄協議,23/TCP//一般用于測試端口或者接口是否開啟
認證明文
數據傳輸明文
ssh //Secure SHell,應用層協議,22/TCP
通信過程及認證過程是加密的,主機認證
用戶認證過程加密
數據傳輸過程加密
dropbear //嵌入式系統專用的SSH服務器端和客戶端工具,一般應用于手機上
1.2 SSH 版本
openssh有兩個版本,分別為v1和v2,其特點如下:
v1:基于CRC-32做MAC,無法防范中間人攻擊
v2:雙方主機協議選擇安全的MAC方式。基于DH算法做密鑰交換,基于RSA或DSA算法實現身份認證
關于密鑰交換
協商生成密碼的過程叫做密鑰交換(Internet Key Exchange,IKE)使用的是DH協議(Diffie-Hellman):
A(主機) --> B(主機)
p,g(大素數,生成數),在網絡中傳輸的,公開的
A:自己取一個隨機數x
B:自己取一個隨機數y
A:g^x%p --> B
B:g^y%p --> A
A:(g^y%p)^x=g^yx%p
B:(g^x%p)^y=g^xy%p
這最后得出的g^xy%p就是最終的密鑰
1.3 SSH 認證方式
openssh有兩種認證方式,分別是:
基于口令認證(即密碼認證)
基于密鑰認證(非對稱加密。有一對密鑰,公鑰(P)和私鑰(S))
1.4 openSSH 的工作模式
openSSH是基于C/S架構工作的
服務器端 //sshd,配置文件在/etc/ssh/sshd_config
# vim /etc/ssh/sshd_config
# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
.
.
.
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
客戶端
//ssh,配置文件在/etc/ssh/ssh_config
ssh-keygen //密鑰生成器
ssh-copy-id //將公鑰傳輸至遠程服務器
scp //跨主機安全復制工具
$OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
# This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
# Host *
# ForwardAgent no
# ForwardX11 no
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
.
.
.
# Send locale-related environment variables
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
1.5 Secure Shell 示例
//以當前用戶身份創建遠程交互式shell,然后在結束時使用exit命令返回到之前的shell
# ssh 192.168.112.131
The authenticity of host '192.168.112.131 (192.168.112.131)' can't be established.
//生成了一個算法是SHA256得公鑰
ECDSA key fingerprint is SHA256:dyCibeKTgTQDtKrGgYAKVnGsLcR/Necufp4Jvnx0cTc.
ECDSA key fingerprint is MD5:bb:a6:d4:16:be:40:d1:d9:ef:6b:89:c9:22:bb:bd:b0.
//問你是否信任所連接得主機,不信任則不連接
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.112.131' (ECDSA) to the list of known hosts.
root@192.168.112.131's password:
Last login: Mon Apr 1 14:24:13 2019 from 192.168.112.14
//此時從用戶名得知已經登陸到另一臺主機
#
//以其他用戶身份(remoteuser)在選定主機(remotehost)上連接到遠程`shell`
# ssh root@192.168.112.131
root@192.168.112.131's password:
Last login: Mon Apr 1 14:24:54 2019 from 192.168.112.14
#
//以遠程用戶身份(remoteuser)在遠程主機(remotehost)上通過將輸出返回到本地顯示器的方式來執行單一命令
//首先登陸一臺主機查看自己IP
# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:8e:77:9b brd ff:ff:ff:ff:ff:ffinet 192.168.112.131/24 brd 192.168.112.255 scope global dynamic ens33valid_lft 1191sec preferred_lft 1191secinet6 fe80::bc68:f1a3:4a1f:87fb/64 scope link
valid_lft forever preferred_lft forever
//在用另一臺主機通過ssh來遠程執行命令
# ssh root@192.168.112.131 '/usr/sbin/ip a s ens33'
root@192.168.112.131's password:
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:8e:77:9b brd ff:ff:ff:ff:ff:ffinet 192.168.112.131/24 brd 192.168.112.255 scope global dynamic ens33valid_lft 1783sec preferred_lft 1783secinet6 fe80::bc68:f1a3:4a1f:87fb/64 scope link
valid_lft forever preferred_lft forever
#
//w命令可以顯示當前登錄到計算機的用戶列表。這對于顯示哪些用戶使用ssh從哪些遠程位置進行了登錄以及執行了何種操作等內容特別有用
# ssh 192.168.112.131
root@192.168.112.131's password:
Last login: Mon Apr 1 14:30:57 2019 from 192.168.112.14
//在切換到GUI主機使用w命令查看 可以看到192.168.112.14用戶在登陸中
# w14:40:59 up 4:37, 2 users, load average: 0.00, 0.02, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.112.1 10:03 3.00s 0.17s 0.01s w
root pts/1 192.168.112.14 14:40 2.00s 0.03s 0.03s -bash
1.5 SSH 主機密鑰
ssh通過公鑰加密的方式保持通信安全。當某一ssh客戶端連接到ssh服務器時,在該客戶端登錄之前,服務器會向其發送公鑰副本。這可用于為通信渠道設置安全加密,并可驗證客戶端的服務器。
當用戶第一次使用ssh連接到特定服務器時,ssh命令可在用戶的/.ssh/known_hosts文件中存儲該服務器的公鑰。在此之后每當用戶進行連接時,客戶端都會通過對比/.ssh/known_hosts文件中的服務器條目和服務器發送的公鑰,確保從服務器獲得相同的公鑰。如果公鑰不匹配,客戶端會假定網絡通信已遭劫持或服務器已被入侵,并且中斷連接。
這意味著,如果服務器的公鑰發生更改(由于硬盤出現故障導致公鑰丟失,或者出于某些正當理由替換公鑰),用戶則需要更新其~/.ssh/known_hosts文件并刪除舊的條目才能夠進行登錄。
//主機ID存儲在本地客戶端系統上的 ~/.ssh/known_hosts 中(家目錄中的隱藏目錄.ssh)
# cat /root/.ssh/known_hosts
192.168.112.131 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJvfkdzYN1ayz0bbvSc5be4/rddT4r2q/DfLo6VtruJgNNsexqi5GzSJ7AGB1kECRSw4/eg1Z11x05bGjRJfL+8=
//主機密鑰存儲在SSH服務器上的 /etc/ssh/ssh_host_key* 中(也就是不手動生成密鑰的情況下會自動使用這里的密鑰)
# ls /etc/ssh/*key*
/etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub
2. 配置基于 SSH 密鑰的身份驗證
用戶可通過使用公鑰身份驗證進行ssh登錄身份驗證。ssh允許用戶使用私鑰-公鑰方案進行身份驗證。這意味著將生成私鑰和公鑰這兩個密鑰。私鑰文件用作身份驗證憑據,像密碼一樣,必須妥善保管。公鑰復制到用戶希望登錄的系統,用于驗證私鑰。公鑰并不需要保密。擁有公鑰的ssh服務器可以發布僅持有您私鑰的系統才可解答的問題。因此,可以根據所持有的密鑰進行驗證。如此一來,就不必在每次訪問系統時鍵入密碼,但安全性仍能得到保證。
使用ssh-keygen命令生成密碼。將會生成私鑰/.ssh/id_rsa和公鑰/.ssh/id_rsa.pub。
//使用ssh-keygen生成密鑰時首先會詢問你密鑰文件存放的位置,默認是在/root/.ssh/id_rsa和id_rsa.pub
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
//接著會詢問你是否為你的私鑰配置密碼
Enter passphrase (empty for no passphrase):
//最后會提示你密鑰創建成功,私鑰存放在id_rsa,公鑰放在id_rsa.pub
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XFV5J+RPAuuHQZBipB8yUyQ22/QAOWT+z2Tsi+cJcpw root@CTL
The key's randomart image is:
//RSA算法密鑰一般為2048位
+-------+
| .B=* .o+oo. |
| +oOoo.o +o o|
| Boo.o o ooo|
| B + . o + |
| S + o . .|
| . B . |
| . E + |
| o o.o |
| .o+ |
+---------+
注意:
生成密鑰時,系統將提供指定密碼的選項,在訪問私鑰時必須提供該密碼。如果私鑰被偷,除頒發者之外的其他任何人很難使用該私鑰,因為已使用密碼對其進行保護。這樣,在攻擊者破解并使用私鑰前,會有足夠的時間生成新的密鑰對并刪除所有涉及舊密鑰的內容。
總結
以上是生活随笔為你收集整理的(linux was 卸载)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子计算机职业40201,天津滨海中等专
- 下一篇: DDOS脚本(使用ddos脚本)